我有这样的代码:JS:对象属性变化构造
class Obj {
constructor() {
this.foo = "foo";
}
}
Object.defineProperty(Obj.prototype,'foo',{enumerable:false,writable:true});
Object.defineProperty(Obj,'foo',{enumerable:false,writable:true});
let obj = new Obj();
console.log(obj);
而且我的输出是:
Obj { foo: 'foo' }
的问题是,我所定义的枚举属性为假foo的。但是当我在构造中使用'this.foo'属性改变它时。
我知道我可以把在构造函数中:
Object.defineProperty(this,'foo',{enumerable:false,writable:true});
而且我的新的输出抛出正确:
Obj {}
但是,我的问题是,如果有可能,一旦foo的属性改变,不在构造函数中更改它?
谢谢!
你想达到什么目的? – philipp
我试图只改变一次对象的属性。并且在创建新对象时不会更改 – jtwalters