我正在使用代理,一切正常,直到我在我的代理附加到的对象上添加了一个数组属性:
let input = document.querySelector('input')
input.addEventListener('change', e => {
let val = e.target.value
proxObj.foo = val
proxObj.fooArray.push(val)
})
let obj = {
foo: "bar", //log : foo mutated to whatever
fooArray: [] //never logs
}
proxObj = new Proxy(obj, {
set: (target, prop, val) => {
console.log(prop, "mutated to", val)
target[prop] = val
return true
}
})
<input type='text'>
<button onClick="console.log(obj.fooArray)"> log fooArray</button>
正如你在这里看到的,我希望fooArray可以打印出变异,但它并没有发生。我在这做错了什么?