javascript。如何禁止创建对象属性
我需要一种避免为对象创建自定义属性的方法。javascript。如何禁止创建对象属性,javascript,Javascript,我需要一种避免为对象创建自定义属性的方法。 这是我的代码: 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
这是我的代码:
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()
方法防止向对象添加新属性(即防止将来扩展对象)
只要在需要锁定属性时调用Object.preventExtensions(my_obj)
与Object.seal
不同,这仍然允许删除现有属性
请注意,这将:;特别是,IE 8及以下版本不支持它。如果您使用的是ECMAScript 5.object.seal(您的对象),则可以密封和/或冻结对象。据我所知,
object.seal
也允许您修改现有属性,但不允许删除它们。不过很容易找到。@FelixKling哎呀,我忘记了[[Writable]]]
(对于密封属性是正确的)和[[Configurable]]]
(错误的)——你是对的。