我想知道如何管理JavaScript的保留關鍵字/功能。javaScript保留關鍵字
實施例:
據:
http://www.quackit.com/javascript/javascript_reserved_words.cfm
delete
是由JavaScript保留關鍵字。
然後考慮下面的代碼片段的一些背景:
var cookieManager = {
get: function (name) {
// function contents ...
console.log("cookieManager.get() called");
return true;
},
set: function (name, value, days) {
// function contents ...
console.log("cookieManager.set() called");
return true;
},
delete: function (name) {
// function contents ...
console.log("cookieManager.delete() called");
return true;
}
};
這個對象有一個delete
性質,但它的名字是由JavaScript保留所以它失敗了,對不對?
然而,當我在FireFox
的webconsole
執行cookieManager.delete();
我得到下面的輸出,這表明它工作正常:
[11:26:00.654] cookieManager.delete();
[11:26:00.656] cookieManager.delete() called
[11:26:00.657] true
但是,如果你在JsLint
運行的代碼,它說
Problem at line 12 character 5: Expected an identifier and instead saw 'delete' (a reserved word).
delete: function (name) {
暗示這是一個很大的沒有沒有的方法,應該避免。
因此,何時應該考慮保留關鍵字,就像在這個例子中,它看起來像我想要的那樣工作(delete關鍵字在對象cookieManager的上下文中,因此不會造成衝突,因此它可以是使用)還是我應該遵守JsLint
的聖經,並重新命名爲javascript的保留關鍵字?在這種情況下,我可以輕鬆地將.delete()重命名爲.remove()。
因此,要澄清,因爲'PropertyName'生產規則使用'IdentifierName'而不是'Identifier',這是罰款使用'刪除'等作爲'PropertyName'? –
@德蘭:我會說是的。但這並不意味着瀏覽器遵循相同的規則。 –
另外,如果你運行''嚴格模式下的代碼''它應該會拋出一個錯誤 – Raynos