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]]]
(错误的)——你是对的。