でオブジェクト プロパティを定義します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
プロパティを値に置き換えたいということです。
これはどのように行うことができますか?