js函數(shù)的引用, 關(guān)于內(nèi)存的開(kāi)銷
var arr = [];
var cc = function(){alert('xx');};
for(var i = 0; i<2; i++){
arr[i] = function(){alert('yy');}
arr[i+10] = cc;
}
console.group('開(kāi)始')
console.group('1')
console.info( arr[0] == arr[1]);
console.info( arr[0] === arr[1]);
console.info( arr[0].toString());
console.info( arr[1].toString());
console.groupEnd('1')
console.group('2')
console.info( arr[10] == arr[11]);
console.info( arr[10] === arr[11]);
console.info( arr[10].toString());
console.info( arr[11].toString());
console.group()
console.groupEnd('開(kāi)始');
在火狐的firebug中的控制臺(tái)運(yùn)行結(jié)果如下圖:

分析:
第五行代碼的循環(huán)開(kāi)始,循環(huán)結(jié)束后 arr數(shù)組得到的結(jié)果為:
arr[0] = function(){ alert('yy'); }
arr[1] = function(){ alert('yy'); }
arr[10] = cc
arr[11] = cc
可以看出來(lái), 控制臺(tái)進(jìn)行結(jié)果,上圖。
arr[0] 不等于 arr[1]
但是 arr[10] 等于 arr[11] , 因?yàn)樗昧饲懊娑x的變量。
其實(shí)在循環(huán)的過(guò)程中都在重新定義函數(shù)function(){alert('yy');}
arr[0] 和 arr[1]的toString 輸出的內(nèi)容是相同的。 但是兩個(gè)是獨(dú)立的方法, 占用各自的內(nèi)存,所以為了省內(nèi)存, 可以用于把函數(shù)定義在循環(huán)外。
函數(shù)定義在循環(huán)外面的前提條件是,函數(shù)沒(méi)有接受在循環(huán)內(nèi)變化的變量。
- 淺談JavaScript 函數(shù)參數(shù)傳遞到底是值傳遞還是引用傳遞
- 菜鳥學(xué)習(xí)JavaScript小實(shí)驗(yàn)之函數(shù)引用
- Javascript學(xué)習(xí)筆記之 函數(shù)篇(三) : 閉包和引用
- JavaScript對(duì)象參數(shù)的引用傳遞
- Js從頭學(xué)起(基本數(shù)據(jù)類型和引用類型的參數(shù)傳遞詳細(xì)分析)
- js中判斷Object、Array、Function等引用類型對(duì)象是否相等
- JavaScript 類的定義和引用 JavaScript高級(jí)培訓(xùn) 自定義對(duì)象
- javascript引用對(duì)象的方法
- JavaScript對(duì)象引用與賦值實(shí)例詳解
- javascript引用對(duì)象的方法代碼
- js中值引用和地址引用實(shí)例分析
相關(guān)文章
javascript獲取重復(fù)次數(shù)最多的字符
本文給大家講述的是使用javascript實(shí)現(xiàn)獲取重復(fù)次數(shù)最多的字符,代碼很簡(jiǎn)單,有需要的小伙伴可以參考下。2015-07-07
Javascript中String的常用方法實(shí)例分析
這篇文章主要介紹了Javascript中String的常用方法,實(shí)例分析了String常用的字符轉(zhuǎn)換、截取、分割等技巧,需要的朋友可以參考下2015-06-06
javascript的document中的動(dòng)態(tài)添加標(biāo)簽實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇淺談javascript的document中的動(dòng)態(tài)添加標(biāo)簽實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
快速解決bootstrap下拉菜單無(wú)法隱藏的問(wèn)題
今天小編就為大家分享一篇快速解決bootstrap下拉菜單無(wú)法隱藏的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
H5用戶注冊(cè)表單頁(yè) 注冊(cè)模態(tài)框!
這篇文章主要為大家詳細(xì)介紹了H5用戶注冊(cè)表單頁(yè)的相關(guān)代碼,注冊(cè)模態(tài)框,如何設(shè)計(jì)用戶注冊(cè)表單頁(yè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
js 實(shí)現(xiàn) list轉(zhuǎn)換成tree的方法示例(數(shù)組到樹(shù))
這篇文章主要介紹了js 實(shí)現(xiàn) list轉(zhuǎn)換成tree的方法示例(數(shù)組到樹(shù)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
JS實(shí)現(xiàn)分頁(yè)導(dǎo)航效果
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)動(dòng)態(tài)頁(yè)碼及分頁(yè)導(dǎo)航,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
微信小程序+云開(kāi)發(fā)實(shí)現(xiàn)歡迎登錄注冊(cè)
這篇文章主要介紹了微信小程序+云開(kāi)發(fā)實(shí)現(xiàn)歡迎登錄注冊(cè),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05

