我需要一种方法来避免为对象创建自定义属性。
这是我的代码:
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 属性,但我想要一个错误!
此外,使用严格模式
也没有帮助。
有什么想法吗?
最佳答案
您可能想要 Object.preventExtensions
:
The
Object.preventExtensions()
method prevents new properties from ever being added to an object (i.e. prevents future extensions to the object).
只要您想锁定属性,只需调用 Object.preventExtensions(my_obj)
即可。
与Object.seal
不同,这仍然允许删除现有属性。
请注意,这将 only work in modern browers ;特别是IE 8及以下版本不支持。
关于JavaScript。如何禁止对象属性创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24671016/