上源码,加上自己的理解:
// 拿到数组的原型
const arrayProto = Array.prototype
// 以数组的原型创建一个自己的对象,《创建一个对象作为拦截器》
// 这里暴露出去后会在 别处 <observe> 使用到,用于对数组类型原型的改变,
// 使其在调用push等方法时会经过下面defineProperty中定义的方法,
export const arrayMethods = Object.create(arrayProto) // --------①
// 罗列出需要改变的方法,《改变数组自身内容的7个方法》
const