理解delete
參考文章:http://perfectionkills.com/understanding-delete/
譯文:http://www.denisdeng.com/?p=858
總結以下:
1.在全局環境下,宣告的變量名稱和函數名稱會變成全局對象(即window對象)成員
2.所有宣告的變量名稱和函數名稱都不可delete(但可覆蓋)
3.沒有宣告的變量名稱是可以delete
4.在IE(8), window對象(還有document和其他對象),成員是可加入但不可delete.
var a=1;
b=1; // Error in FF strict mode
window.c=1;
delete window.a; // Not work in FF; Error in IE
delete window.b; // Error in IE
delete a; // Not work in FF, Error in strict mode; Error in IE
delete b; // OK
delete window.c; // OK in FF; Error in IE
實際寫代碼時要注意的地方: 不要宣告不常用的變量和函數,因為它們會長留在window對象下
function init(){...........}
...........
onload=init;
//這會製造多一個沒用的window.init成員
//應
onload=function(){................}
//這httpR只用一次,不應用var httpR; 應 (FF下):
window.httpR = new XMLHttpRequest();
httpR.onreadystatechange = function(){
...........
httpR.onreadystatechange=null;
delete window.httpR;
};
..............

浙公网安备 33010602011771号