Q1:有人可以解释如何触发setProperty中的setter,通过这种方式使用它的函数吗? Q2:如何获得setter中的最后一个键?JS defineProperty setter没有触发
function test(root) {
Object.defineProperty(this, 'subtree', {
get: function() {
console.log("get");
return root.subtree;
},
set: function(value) { //doesn't triggered
console.log("set");
root.subtree = value;
}
});
}
var demo = new test({
subtree: {
state: null,
test: 1
}
});
console.log("START", demo.subtree);
demo.subtree.state = 13; // doesn't triggered setter, but change object
console.log("END", demo.subtree);
您可以使用get set函数,如demo.subtree.set({state:13,test:1})。 要获得setter中的键,每次使用setter时都要使用一个对象来存储。 – Danish
丹麦语,结果:未捕获TypeError:demo.subtree.set不是函数。有任何想法吗? – Romario
[请阅读说明书](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set)。如果你没有找到答案,请回来。 – Whatever