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 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/

相关文章:

javascript - 获取 JSON 数组的长度

javascript - Onload 单选选项无法正常工作

javascript - 使用 Javascript 定位 DIV

JavaScript 捕获鼠标点击

javascript - 如果存在另一个类,则更改类

javascript - d3js : Replace a particular tick value on X-Axis

javascript - 删除数组中的前缀 y 以将其用于图表的轴

javascript - 按相同的名称和日期过滤数组

javascript - JS 下拉菜单未关闭?

javascript - 我不知道这种 jQuery AJAX 数据是什么 : () would be interpreted