小编ben*_*ime的帖子

将javascript类实例限制为特定属性

我想定义一个类的结构,如果用户试图使用未在类中定义的属性在我的一个对象实例上设置属性,则抛出一个错误.

例如,假设我有以下课程:

class MyClass {
  constructor() {
    this.propertyA = 'A value';
    this.propertyB = 'Another value';
  }
}
Run Code Online (Sandbox Code Playgroud)

然后当用户修改对象实例时......

let myInstance = new MyClass();
myInstance.propertyA = 'a new value'; // would work fine
myInstance.propertyC = 'unknown property value'; // throw exception
Run Code Online (Sandbox Code Playgroud)

这可能吗?该密封关键字似乎是接近我想要的东西.它会阻止添加新属性,但我想在用户输入-o是有效属性名称时抛出异常.

更新: 使用Object.preventExtensions,, Object.sealObject.freeze在严格模式下,如果将不存在的属性分配给对象,则会导致错误.

javascript

3
推荐指数
1
解决办法
70
查看次数

标签 统计

javascript ×1