1.让一个变量继承数组的方法。

var OldArray=Array.prototype;

var newArray=Object.create(OldArray)

2.重写该变量的7种变异方法

 const mutationMethods = [
  'push',
  'pop',
  'shift',
  'unshift',
  'splice',
  'sort',
  'reverse'
]
      
mutationMethods.forEach((item)=>{
          let oldFun =OldArray[item]
        //  console.log(oldFun)
          newArray[item]=function(...args){
            //   console.log(this,item)
            let result=  oldFun.apply(this,args)
           
            return result;
          }
      })

3.让数组隐式继承新变量的方法

     let arr = []
// 通过隐式原型继承arrayMethods
    arr.__proto__ = newArray

iqing2012
19 声望0 粉丝

天青色,等烟雨


« 上一篇
vue 源码