首頁 > web前端 > js教程 > javascript特權方法有什麼用

javascript特權方法有什麼用

青灯夜游
發布: 2023-01-05 16:11:00
原創
2255 人瀏覽過

在javascript中,特權方法指那些在查看並處理私有變數的同時,允許使用者以公共方法的方式存取的方法。作用:在建構函式外面公開存取(僅限於實例化的物件),而且還能夠存取私有成員和方法;透過特權方法可以控制公有方法對私有屬性或方法的存取。

javascript特權方法有什麼用

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

特權方法:

指那些在檢視並處理私有變數的同時,允許使用者以公有方法的方式存取的方法.

#要點:

1.特權方法是一個方法

2.特權方法可以存取私有變數

定義特權方法

在建構函數內部透過this關鍵字定義的的方法,可以被實例化的物件繼承所呼叫。

var Student = function(name) {
var _name = name; //私有属性
//特权方法
this.getName = function() {
return _name;
};
this.setName = function(name) {
_name = name;
};
};
var s1 = new Student('zhangsan');
s1.getName(); //zhangsan
登入後複製

特權方法的作用

特權方法能夠在建構函式外面公開存取(僅限於實例化的物件),而且還能夠存取私有成員和方法,因此用來做為物件或建構函式的介面最適合不過了,透過特權方法我們可以控制公有方法對私有屬性或方法的存取。在JS框架的擴展中有很多應用。

特權方法與公有方法的差異

相同點:

1、都可以在建構子外部公開存取。

2、都可以存取公有屬性

不同點:有2點

1、每個實例都要擁有一份特權方法的副本(除在單例中使用外,需要考慮記憶體),而公有方法為所有實例共享

//创建Student对象实例
var s1 = new Student('zhangsan');
var s2 = new Student('lisi');
//两实例的特权方法的引用不相同, 说明在对象实例化的时特权方法被重新创建
console.log(s1.getName === s2.getName); //false
登入後複製

2、特權方法可以存取私有屬性和方法,而公有方法不能。

//为Student创建公有方法
//公有方法不能访问私有属性
Student.prototype.myMethod = function() {
console.log(_name); //ReferenceError: _name is not defined
};
s1.myMethod();
登入後複製

【推薦學習:javascript進階教學

以上是javascript特權方法有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板