在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中文網其他相關文章!