欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2013年03月18日 14:18:03   作者:  
在構(gòu)造函數(shù)內(nèi)部通過(guò)this關(guān)鍵字定義的的方法為特權(quán)方法它的作用為在構(gòu)造函數(shù)外面公開(kāi)訪(fǎng)問(wèn)(僅限于實(shí)例化的對(duì)象),而且還能夠訪(fǎng)問(wèn)私有成員和方法,感興趣的你可以參考下哈
定義特權(quán)方法
在構(gòu)造函數(shù)內(nèi)部通過(guò)this關(guān)鍵字定義的的方法,可以被實(shí)例化的對(duì)象繼承所調(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ù)外面公開(kāi)訪(fǎng)問(wèn)(僅限于實(shí)例化的對(duì)象),而且還能夠訪(fǎng)問(wèn)私有成員和方法,因此用來(lái)做為對(duì)象或者構(gòu)造函數(shù)的接口最合適不過(guò)了,通過(guò)特權(quán)方法我們可以控制公有方法對(duì)私有屬性或方法的訪(fǎng)問(wèn)。 在JS框架的擴(kuò)展中有很多應(yīng)用。
特權(quán)方法與公有方法的區(qū)別
相同點(diǎn):1. 都可以在構(gòu)造函數(shù)外部公開(kāi)訪(fǎng)問(wèn)。2. 都可以訪(fǎng)問(wèn)公有屬性
不同點(diǎn):有2點(diǎn)
1. 每個(gè)實(shí)例都要擁有一份特權(quán)方法的副本(除在單例中使用外,需要考慮內(nèi)存),而公有方法為所有實(shí)例共享
復(fù)制代碼 代碼如下:

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

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

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

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

相關(guān)文章

最新評(píng)論