根據EcmaScript規範,由於DontDelete內部參數,某些對象屬性無法刪除。例如:JavaScript對象的DontDelete屬性
var y = 5
不應該刪除的。但從我能夠檢查 - 這是。
這裏是在Mozilla開發者中心的鏈接: https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete
爲什麼這是行不通的,因爲它應該任何想法?
根據EcmaScript規範,由於DontDelete內部參數,某些對象屬性無法刪除。例如:JavaScript對象的DontDelete屬性
var y = 5
不應該刪除的。但從我能夠檢查 - 這是。
這裏是在Mozilla開發者中心的鏈接: https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/delete
爲什麼這是行不通的,因爲它應該任何想法?
有時您必須檢查您閱讀的內容。 ECMA規範中沒有DontDelete
內部參數(262,ed 5)。也許[Configurable
]屬性是指?該delete
操作上的變量或函數不能正常工作,它適用於對象的屬性:
var y=5,
z = {y:5};
delete y;
delete z.y;
alert(y); //=> 5
alert(z.y); //=> undefined
從我的答案,這SO question出現,並從T.J.一個很好的答案克勞德。
根據ES5表17:
CreateMutableBinding(N,d) 在 環境記錄創建一個新的可變綁定。字符串值N 是綁定名稱的文本。如果 可選的布爾參數D爲真 ,則綁定可能會隨後被刪除,其中 。
和在10.5聲明綁定實例化
- 對於每個代碼VariableDeclaration和VariableDeclarationNoIn d,在 源文本順序做 [...] II。調用env的SetMutableBinding 具體方法傳遞dn,undefined, 和strict作爲參數。
這對我說,聲明的變量應該是不可刪除的。在全局代碼中,全局對象是變量obejct的激活對象,所以聲明的全局變量不應該是可刪除的。當然,瀏覽器可能不會堅持...
http://perfectionkills.com/2010/01/猜它已解決 – elreyano 2011-05-13 07:15:16