第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js中全局變量和局部變量初始化問題

js中全局變量和局部變量初始化問題

千萬里不及你 2018-09-13 10:10:34
var age=100;function box(){    age++;}box();//age=101box();//age=102function box(){var age=100;age++;return age; }box();//age=101;box();//age=101為什么全局變量初始化過后,調(diào)用函數(shù)會累加?而局部變量每次調(diào)用變量都會初始化一次?他們這個過程中發(fā)生了什么呢?是因為儲存方式,內(nèi)存的原因??
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻1851條經(jīng)驗 獲得超5個贊

第一個例子中的age在全局中聲明,即全局變量,所以age一直存在,每次調(diào)用box()時會根據(jù)作用域鏈找到全局作用域中的age,所以會一直累加;
第二個例子中的age在box中聲明,即局部變量,agebox調(diào)用時創(chuàng)建,調(diào)用完box()即被銷毀,下次再調(diào)用box時會創(chuàng)建一個新的age,調(diào)用完再銷毀,所以無法實現(xiàn)累加,如果想實現(xiàn)的話,可以使用閉包,創(chuàng)建閉包之后對私有變量處于引用狀態(tài),不會銷毀,存在內(nèi)存中,可以實現(xiàn)累加。

function box(){    var age=100;    return function() {
        age++;        console.log(age);
    }
}var b = box();
b(); // 101b(); // 102

學習Javascript閉包(Closure)


查看完整回答
反對 回復(fù) 2018-10-08
  • 1 回答
  • 0 關(guān)注
  • 1824 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號