我需要一种避免为对象创建自定义属性的方法 这是我的代码:
object_to_instance = function () {
this["elem1"] = 0;
this["elem2"] = 0;
// ....
this["elem_n"] = 0;
}
my_obj = new object_to_instance();
my_obj.elem1 =7;
我想要的是一种避免这种情况的方法:
my_obj.ele2 = 8 // (The m of elem2 is missing)
是可能的。
现在我有一个ele2属性,但我想要一个错误!
此外,使用strict mode
也无济于事。
有什么想法吗?
答案 0 :(得分:1)
您可能想要Object.preventExtensions
:
Object.preventExtensions()
方法可防止将新属性添加到对象中(即防止将来扩展该对象)。
只要您想要锁定属性,只需致电Object.preventExtensions(my_obj)
。
与Object.seal
不同,这仍然允许删除现有属性。
请注意,这将是only work in modern browers;特别是,IE 8及以下版本不支持它。