js原生实现Bind方法

Function.prototype.myBind=function(){
  let self=this
  let context=[].shift.call(arguments) //
  let args=[].slice.call(arguments)
  return function(){
  self.apply(context,[].concat.call(args,[].slice.call(arguments)));
  }
}

let obj={
  name:'zxz'
}

function test(m,n){
  console.log(this.name,m,n)
}
let bind=test.myBind(obj,1,2)
bind(3,4)

posted @ 2020-04-17 10:26  sky_android  阅读(151)  评论(0)    收藏  举报