我用 定义了一个对象属性Object.defineProperty
。但那我怎么能取消它呢?
我试图用delete foo.bar
(bar
属性在哪里)来取消它,但它似乎不起作用:
var foo = {};
Object.defineProperty(foo, "bar", {
get: function () {
console.log("first call");
delete foo.bar;
var value = 3;
foo.bar = value;
return value;
}
, writeable: true
, enumerable: true
});
console.log(foo.bar);
console.log(foo.bar);
输出是:
first call
3
first call
3
我期望以下输出:
first call
3
3
这个想法是,在第一次之后,get
我想用一个值替换该属性。
如何才能做到这一点?