亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS特權(quán)方法定義作用以及與公有方法的區(qū)別

 更新時間:2013年03月18日 14:18:03   作者:  
在構(gòu)造函數(shù)內(nèi)部通過this關(guān)鍵字定義的的方法為特權(quán)方法它的作用為在構(gòu)造函數(shù)外面公開訪問(僅限于實例化的對象),而且還能夠訪問私有成員和方法,感興趣的你可以參考下哈
定義特權(quán)方法
在構(gòu)造函數(shù)內(nèi)部通過this關(guān)鍵字定義的的方法,可以被實例化的對象繼承所調(diào)用。
復(fù)制代碼 代碼如下:

var Student = function(name) {
var _name = name; //私有屬性
//特權(quán)方法
this.getName = function() {
return _name;
};
this.setName = function(name) {
_name = name;
};
};
var s1 = new Student('zhangsan');
s1.getName(); //zhangsan

特權(quán)方法的作用
特權(quán)方法能夠在構(gòu)造函數(shù)外面公開訪問(僅限于實例化的對象),而且還能夠訪問私有成員和方法,因此用來做為對象或者構(gòu)造函數(shù)的接口最合適不過了,通過特權(quán)方法我們可以控制公有方法對私有屬性或方法的訪問。 在JS框架的擴展中有很多應(yīng)用。
特權(quán)方法與公有方法的區(qū)別
相同點:1. 都可以在構(gòu)造函數(shù)外部公開訪問。2. 都可以訪問公有屬性
不同點:有2點
1. 每個實例都要擁有一份特權(quán)方法的副本(除在單例中使用外,需要考慮內(nèi)存),而公有方法為所有實例共享
復(fù)制代碼 代碼如下:

//創(chuàng)建Student對象實例
var s1 = new Student('zhangsan');
var s2 = new Student('lisi');
//兩實例的特權(quán)方法的引用不相同, 說明在對象實例化的時特權(quán)方法被重新創(chuàng)建
console.log(s1.getName === s2.getName); //false

2. 特權(quán)方法可以訪問私有屬性和方法,而公有方法不能。
復(fù)制代碼 代碼如下:

//為Student創(chuàng)建公有方法
//公有方法不能訪問私有屬性
Student.prototype.myMethod = function() {
console.log(_name); //ReferenceError: _name is not defined
};
s1.myMethod();

小結(jié):特權(quán)方法作為構(gòu)造函數(shù)的接口,公有方法可以通過特權(quán)方法訪問私有屬性和方法

相關(guān)文章

最新評論