var的規則是: 使用var宣告變數就是內部變數, 否則就是先呼叫全域性變數, 不管多少層函式.
this的規則是: method函式裡的this永遠指向自身, 普通函式的this永遠指向domwindow.
// goddamntest1function foo() )();
} var f = new foo();
// goddamntest2
function foo() )(this.a);
} var f = new foo();
// goddamntest3
function foo() )();
(function() )();
} var f = new foo();
(function() )();
// goddamntest4
function foo() )();
(function() )();
} var f = new foo();
(function() )();
令人意外的是,最後乙個 alert(b),結果仍然是 789。 // no damn surprise at all!
// goddamntest5function foo() )();
(function() )();
} var f = new foo();
(function() )();
ps:js刪除區域性變數的方法
alert('value:'+str+'\ttype:'+typeof(str)) //宣告變數前,引用var str="dd";
alert('value:'+str+'\ttype:'+typeof(str)) //宣告並賦值變數後,引用
str=undefined; //刪除區域性變數
alert('value:'+str+'\ttype:'+typeof(str)) //取消變數後,引用,和第乙個相同
js區域性變數 全域性變數
在js中如果用var來定義乙個變數,如果該變數被定義在function或者其他迴圈體內,則變數為區域性變數,並且該變數不會受到同名全域性變數的影響,也不會影響同名的全域性變數。如果不用var來定義變數而直接拿乙個變數來使用則該變數會被自己定義為全域性變數,無論該變數被定義在任何位置,如果在funct...
區域性變數和全域性變數的區別
背景 上午看書閱及這兩對概念,有很多相似之處,故記之。一.區域性變數 全域性變數 1區域性變數 在函式內定義的變數 即在乙個函式內部定義的變數,只在本函式範圍內有效。2全域性變數 在函式外定義的變數 即從定義變數的位置到本原始檔結束都有效。目的 增加函式間資料聯絡的渠道。由於同一檔案中的所有函式都能...
全域性變數 靜態全域性變數 靜態區域性變數 區域性變數
全域性和靜態變數都在堆裡。這句話應該錯了,應該是放在常量資料段 全域性變數的作用範圍是整個程式 如果程式是多個檔案,必須在其他的檔案中說明 靜態變數的作用範圍要看靜態變數的位置,如果在函式裡,則作用範圍 就是這個函式。靜態全域性變數,只在本檔案可以用,雖然整個程式包含多個檔案,但靜態全域性變數只能用...