数组是否响应
js
const myArray = Object.create(Array.prototype);
[("unshift", "push", "pop", "shift", "reverse", "splice", "sort")].map(
(item) => {
myArray[item] = function (value) {
switch (item) {
case "push":
case "unshift":
inserValue = value;
break;
case "splice":
inserValue = value.slice(2);
break;
}
console.log("inserValue", inserValue); // 新增值 响应
if (inserValue) observeArray(inserValue);
return Array.prototype[item].call(this, value);
};
}
);
js
if (Array.isArray(obj)) {
obj.__proto__ = myArray; // 劫持对象原型
}