我需要一种避免为对象创建自定义属性的方法。
这是我的代码:
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
也无济于事。有任何想法吗 ?
最佳答案
您可能需要Object.preventExtensions
:
Object.preventExtensions()
方法可防止将新属性添加到对象中(即,防止将来对该对象进行扩展)。
只要您想锁定属性,只需调用Object.preventExtensions(my_obj)
。
与Object.seal
不同,这仍将允许删除现有属性。
请注意,这将only work in modern browers;特别是IE 8和更低版本不支持它。