最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javaScript 利用閉包模擬對(duì)象的私有屬性

 更新時(shí)間:2011年12月29日 00:33:11   作者:  
JavaScript缺少塊級(jí)作用域,沒(méi)有private修飾符,但它具有函數(shù)作用域。作用域的好處是內(nèi)部函數(shù)可以訪問(wèn)它們的外部函數(shù)的參數(shù)和變量(除了this和argument
JavaScript缺少塊級(jí)作用域,沒(méi)有private修飾符,但它具有函數(shù)作用域。作用域的好處是內(nèi)部函數(shù)可以訪問(wèn)它們的外部函數(shù)的參數(shù)和變量(除了this和argument。內(nèi)部中的函數(shù)中的this指向全局對(duì)象,argument指向內(nèi)部函數(shù)的函數(shù)參數(shù))。我們可以利用這種屬性來(lái)模擬面向?qū)ο笾械乃接袑傩浴?

復(fù)制代碼 代碼如下:

var myObject=function(value){
var value=value || 0;
return{
increment:function(num){
value+=typeof num==='number' ? num : 0;
},
setValue:function(num){
value = typeof num==='number' ? num : value;
},
getValue:function(){
return value;
}
}
}(10)
//alert(myObject.getValue()); //10
myObject.setValue(20);
//alert(myObject.getValue()); //20
myObject.increment(5);
alert(myObject.getValue()); //25

如上例中,myObjeact是匿名函數(shù)執(zhí)行后返回的對(duì)象。匿名函數(shù)中變量value對(duì)于匿名函數(shù)外部來(lái)說(shuō)是不可訪問(wèn)的,但對(duì)于其內(nèi)部的函數(shù),是可以訪問(wèn)的,匿名函數(shù)執(zhí)行結(jié)束,由于變量value仍被返回的myObject對(duì)象所存取,故value所占據(jù)的內(nèi)存并沒(méi)有被銷毀。此時(shí),內(nèi)部的變量value就如同myObject對(duì)象的私有變量一樣。
復(fù)制代碼 代碼如下:

var myObject=function(value){
var name='MyObject';
return{
increment:function(num){
value+=typeof num==='number' ? num : 0;
},
setValue:function(num){
value = typeof num==='number' ? num : value;
},
getValue:function(){
//alert(this);
return value;
},
getName:function(){
return name;
},
setName:function(nameStr){
name=nameStr;
},
toString:function(){
return '[Object:'+name+']';
}
}
}
var obj=myObject(5);
obj.increment(6);
//alert(obj.getValue()); // 11
//alert(obj); //[Object:MyObject]
obj.setName('temp object 01');
alert(obj) //[Object:temp object 01]

相關(guān)文章

  • uniapp開(kāi)發(fā)小程序?qū)崿F(xiàn)全局懸浮按鈕的代碼

    uniapp開(kāi)發(fā)小程序?qū)崿F(xiàn)全局懸浮按鈕的代碼

    這篇文章主要介紹了uniapp開(kāi)發(fā)小程序如何實(shí)現(xiàn)全局懸浮按鈕,但是在uniapp中式?jīng)]有window對(duì)象,和dom元素的,需要獲取頁(yè)面上節(jié)點(diǎn)的幾何信息,具體實(shí)例代碼詳細(xì)跟隨小編一起看看吧
    2022-03-03
  • Bootstrap教程JS插件滾動(dòng)監(jiān)聽(tīng)學(xué)習(xí)筆記分享

    Bootstrap教程JS插件滾動(dòng)監(jiān)聽(tīng)學(xué)習(xí)筆記分享

    這篇文章主要為大家分享了Bootstrap教程JS插件滾動(dòng)監(jiān)聽(tīng)學(xué)習(xí)筆記,內(nèi)容很詳細(xì),感興趣的小伙伴們可以參考一下
    2016-05-05
  • swiperjs實(shí)現(xiàn)導(dǎo)航與tab頁(yè)的聯(lián)動(dòng)

    swiperjs實(shí)現(xiàn)導(dǎo)航與tab頁(yè)的聯(lián)動(dòng)

    這篇文章主要為大家詳細(xì)介紹了swiperjs實(shí)現(xiàn)導(dǎo)航與tab頁(yè)的聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 基于JavaScript打造一款桌面級(jí)便簽系統(tǒng)

    基于JavaScript打造一款桌面級(jí)便簽系統(tǒng)

    本文將用html,css和JavaScript實(shí)現(xiàn)一個(gè)簡(jiǎn)單的便簽系統(tǒng)。除非手動(dòng)清空便簽,否則便簽會(huì)一直保留,非常方便。感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試
    2022-02-02
  • javascript 緩沖效果實(shí)現(xiàn)代碼 推薦

    javascript 緩沖效果實(shí)現(xiàn)代碼 推薦

    緩沖效果就是實(shí)現(xiàn)一個(gè)頁(yè)面的由慢到快或由快到慢的過(guò)程。
    2009-09-09
  • JS原型鏈 詳解及示例代碼

    JS原型鏈 詳解及示例代碼

    本文主要介紹JS原型鏈的知識(shí),這里整理了相關(guān)資料及簡(jiǎn)單實(shí)現(xiàn)示例代碼,有興趣的小伙伴可以參考下
    2016-09-09
  • 解讀JavaScript代碼 var ie = !-[1,] 最短的IE判定代碼

    解讀JavaScript代碼 var ie = !-[1,] 最短的IE判定代碼

    這句代碼在IE9之前曾被稱為世界上最短的IE判定代碼。代碼雖短但確包含了不少javascript基礎(chǔ)知識(shí)在里面。
    2011-05-05
  • 最新評(píng)論

    鄄城县| 来安县| 哈密市| 铜鼓县| 阆中市| 突泉县| 广南县| 马龙县| 普安县| 江源县| 藁城市| 阳泉市| 响水县| 盘山县| 西乡县| 定安县| 封丘县| 遂昌县| 清镇市| 沭阳县| 广丰县| 广饶县| 镇安县| 玉山县| 顺平县| 三亚市| 津市市| 特克斯县| 泰安市| 博乐市| 五寨县| 牡丹江市| 百色市| 樟树市| 基隆市| 通州区| 山西省| 襄城县| 博客| 稷山县| 北安市|