Object.defineProperty不是不能监听数组,是取舍
来源:4-6 vue如何监听数组变化
RamirezNi
2020-02-25
似乎···Object.defineProperty并不是不能监听数组,性能取舍
ps:另外···老师你的push发音····emmmmmm
写回答
1回答
-
你说的应该是这种遍历监听的方式吧?不知道谁想出来的这种方式,只能较真的说“能监听数组”,但是不能用。
这数组每变化一次,就得重新遍历监听一次,时间复杂度太高。
var arr = [1,2,3,4] arr.forEach((item,index)=>{ Object.defineProperty(arr,index,{ set:function(val){ console.log('set') item = val }, get:function(val){ console.log('get') return item } }) }) arr[1]; // get 2 arr[1] = 1; // set 1
112020-02-26
相似问题