我有這樣的代碼: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