javascript.如何禁止对象属性的创建

javascript. How to forbide object properties creation

本文关键字:对象 属性 创建 禁止 何禁止 javascript      更新时间:2023-09-26

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

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不同,这仍然允许删除现有的属性。

注意,这只会在现代浏览器中工作;特别是ie8及以下版本不支持。