我需要一种避免为对象创建自定义属性的方法。
这是我的代码:

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和更低版本不支持它。

09-25 22:13
查看更多