Object.preventExtensions和Object.seal阻止將未知屬性添加到對象,但這些屬性默默失敗而不是拋出錯誤。有沒有辦法迫使他們成爲錯誤?當一個新的屬性被添加到一個給定的對象時,有沒有一種方法可以讓Javascript拋出一個錯誤?
var myObj = Object.seal({});
try{
myObj.someProp = 17;
console.log("I don't want to reach this message");
}catch(err){
console.log("I want an error to occur instead.")
console.log("Or at least get a warning somewhere.");
}
我在Chrome 19和Firefox 9測試這一點,我不會介意特定瀏覽器的解決方案,無論是,因爲我不僅會在開發過程中需要這個。
對我來說,在Chrome中,'Object.preventExtensions'確實,當您嘗試添加屬性拋出異常。 – 2013-06-25 06:16:59
@torazaburo:您是否使用嚴格模式?它只適用於嚴格模式。 – hugomg