Bootstrap

js 实现监听数组变化

1. 创建一个新的原型,这就是改造之后的数组原型

const arrayMethods = Object.create(Array.prototype)

2.重新构建Array原型里面的虽有方法

const ArrayProto = []
// 重新构建Array原型里面的虽有方法
Object.getOwnPropertyNames(Array.prototype).forEach(method => {
    if (typeof arrayMethods[method] === "function") {
        ArrayProto[method] = function () {
            console.log("我已经监听到数组触发了" + method + "事件")
            arrayMethods[method].apply(this, arguments)
            localStorage.setItem('chatList', JSON.stringify(data))

        }
    } else {
        ArrayProto[method] = arrayMethods[method]
    }
})

3.哪个数组要监听,就给赋哪个数组的原型(这里我要监听的数组变量名是data)

data.__proto__ = ArrayProto

;