JavaScript 手写代码 第五期(重写数组方法一)-可以改变原数组的方法
// 重写数组的原型方法,以下方法可以修改原数组
['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'].forEach(method => {
Array.prototype[method] = function() {
Array.prototype[method].original.apply(this, arguments);
triggerChange(this);
};
// 保存原生方法引用
Array.prototype[method].original = Array.prototype[method];
});
// 示例:测试数组方法修改
let arr = [1, 2, 3];
let dep = new Dep();
dep.watch(arr, 'change');
arr.push(4); // 调用重写后的push方法,触发变更
// 输出结果:数组已改变,触发了变更通知
console.log('数组已改变,触发了变更通知');
这个示例代码展示了如何重写数组的几个可变方法,并在每次调用这些方法时触发一个变更通知。这是学习如何跟踪数组变化的一个很好的实践。
评论已关闭