範圍鏈(Scope chain)

舉兩個覺得值得看的例子:

e.g.1

var a = 1;

(function(){
    a = 100;
    console.log(a);    // 100
})();
console.log(a);    //100

全域變數a為何是100,聽到老師說"就想像成我們不能把家外面的東西丟掉", 一旦家外面的值被改了,我們家裡的人不能修改。


e.g.2

var a = 1;

(function(a) {
    a = 100;
    console.log(a);    // 100
})(a);
console.log(a);    //1

當a以參數的形式傳入函式,就視為重定義了一個區域變數。所以a = 100

留言

熱門文章