JavaScript的。如何禁止创建对象属性

时间:2014-07-10 07:43:21

标签: 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 missing)  

是可能的。

现在我有一个ele2属性,但我想要一个错误!

此外,使用strict mode也无济于事。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可能想要Object.preventExtensions

  

Object.preventExtensions()方法可防止将新属性添加到对象中(即防止将来扩展该对象)。

只要您想要锁定属性,只需致电Object.preventExtensions(my_obj)

Object.seal不同,这仍然允许删除现有属性。

请注意,这将是only work in modern browers;特别是,IE 8及以下版本不支持它。