JS特權(quán)方法定義作用以及與公有方法的區(qū)別
在構(gòu)造函數(shù)內(nèi)部通過(guò)this關(guān)鍵字定義的的方法,可以被實(shí)例化的對(duì)象繼承所調(diào)用。
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í)例共享
//創(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)私有屬性和方法,而公有方法不能。
//為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)文章
微信小程序模板消息限制實(shí)現(xiàn)無(wú)限制主動(dòng)推送的示例代碼
這篇文章主要介紹了微信小程序模板消息限制實(shí)現(xiàn)無(wú)限制主動(dòng)推送的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08JS實(shí)現(xiàn)帶鼠標(biāo)效果的頭像及文章列表代碼
這篇文章主要介紹了JS實(shí)現(xiàn)帶鼠標(biāo)效果的頭像及文章列表代碼,涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)切換頁(yè)面元素樣式的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09js實(shí)現(xiàn)表格的隔行變色和上下移動(dòng)
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)表格的隔行變色和上下移動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02微信小程序MUI側(cè)滑導(dǎo)航菜單示例(Popup彈出式,左側(cè)不動(dòng),右側(cè)滑動(dòng))
這篇文章主要介紹了微信小程序MUI側(cè)滑導(dǎo)航菜單,結(jié)合實(shí)例形式分析了微信小程序Popup彈出式,左側(cè)不動(dòng),右側(cè)滑動(dòng)菜單相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2019-01-01可拖動(dòng)可改變大小div的實(shí)現(xiàn)代碼
可拖動(dòng)可改變大小div的實(shí)現(xiàn)代碼,非常不錯(cuò)的應(yīng)用,大家可以參考下。2009-08-08JavaScript實(shí)現(xiàn)移動(dòng)端拖動(dòng)元素
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)移動(dòng)端拖動(dòng)元素,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11JS判斷不同分辨率調(diào)用不同的CSS樣式文件實(shí)現(xiàn)思路及測(cè)試代碼
最近看一個(gè)網(wǎng)站,發(fā)現(xiàn)顯示器不同的分辨率,樣式文件調(diào)用的也不一樣,于是很好奇研究并寫(xiě)了一個(gè),經(jīng)測(cè)試感覺(jué)還不錯(cuò),感興趣的你可以來(lái)看看哦2013-01-01JS動(dòng)態(tài)獲取當(dāng)前時(shí)間,并寫(xiě)到特定的區(qū)域
JS動(dòng)態(tài)獲取當(dāng)前時(shí)間,并寫(xiě)到特定的區(qū)域,需要的朋友可以參考一下2013-05-05