var x = Object.create(null);
x["hello"] = "world";
但我可以允許未經驗證的用戶輸入作爲鍵嗎?我想用它作爲玩家的名字 - >玩家對象地圖。玩家的名字只能被32的長度限制。我擔心如果有特殊的屬性鍵可以讓玩家獲得對服務器的控制權。作爲標準的Object的安全性是否真的由標準保證?
編輯:我沒有製作網絡服務器。 JavaScript將通過嵌入遊戲服務器的SpiderMonkey運行在服務器端。如果有人劫持運行在那裏的JavaScript,他們可能會毀了遊戲。
'__proto__'來自Object.prototype,至少在我的Firefox上。如果我用'null'原型創建一個對象,它沒有'__proto__'。 – lamefun
是的,但它也支持在webkit&opera中,如果使用Object.create(null)創建對象,則__proto__設置器仍然有效,因爲它不是來自Object.prototype,而是反映Chrome和Opera中的inner [[Prototype]]屬性。 你說得對,FF在這裏是個例外。 – pozs