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

javaScript 利用閉包模擬對象的私有屬性

 更新時(shí)間:2011年12月29日 00:33:11   作者:  
JavaScript缺少塊級作用域,沒有private修飾符,但它具有函數(shù)作用域。作用域的好處是內(nèi)部函數(shù)可以訪問它們的外部函數(shù)的參數(shù)和變量(除了this和argument
JavaScript缺少塊級作用域,沒有private修飾符,但它具有函數(shù)作用域。作用域的好處是內(nèi)部函數(shù)可以訪問它們的外部函數(shù)的參數(shù)和變量(除了this和argument。內(nèi)部中的函數(shù)中的this指向全局對象,argument指向內(nèi)部函數(shù)的函數(shù)參數(shù))。我們可以利用這種屬性來模擬面向?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í)行后返回的對象。匿名函數(shù)中變量value對于匿名函數(shù)外部來說是不可訪問的,但對于其內(nèi)部的函數(shù),是可以訪問的,匿名函數(shù)執(zhí)行結(jié)束,由于變量value仍被返回的myObject對象所存取,故value所占據(jù)的內(nèi)存并沒有被銷毀。此時(shí),內(nèi)部的變量value就如同myObject對象的私有變量一樣。
復(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開發(fā)小程序?qū)崿F(xiàn)全局懸浮按鈕的代碼

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

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

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

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

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

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

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

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

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

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

    JS原型鏈 詳解及示例代碼

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

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

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

    方山县| 天峻县| 华容县| 昌图县| 安阳市| 隆子县| 茂名市| 墨脱县| 林州市| 根河市| 甘孜县| 石河子市| 上饶市| 沙湾县| 蕲春县| 东阳市| 新和县| 敦化市| 张家港市| 凉山| 韶山市| 安阳县| 牟定县| 扬州市| 屯昌县| 涿鹿县| 绍兴县| 九龙坡区| 东乡族自治县| 汾西县| 招远市| 普格县| 星座| 博客| 乌拉特前旗| 宁武县| 新闻| 山丹县| 三江| 天长市| 陈巴尔虎旗|