範圍鏈(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
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
留言
張貼留言