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