为什么需要this

  • this提供了一种更优雅的方式来隐式“传递”一个对象引用,因此可以将API 设计得更加简洁并且易于复用

它的作用域

  • 它在任何情况下都不指向词法作用域。

定义

  • 每个函数的this 是在调用时被绑定的,完全取决于函数的调用位置

绑定规则

  • 默认绑定
  • 隐式绑定
  • 显示绑定
  • new绑定

优先级

模拟call方法。

Function.prototype.mycall = function(context,...args){
  context = context ?? window
  //obj.fn1
  context.fnxxxx = this
  const r = context.fnxxxx
  delete context.fnxxxx
  return r
}

function f1(){
  console.log(1)
}
function f1(){
  console.log(1)
}
//分析下
f1.mycall(f2)
f1.mycall.mycall(f2)

模拟bind方法


用户bPbuFxB
51 声望4 粉丝

« 上一篇
作用域
下一篇 »
npm问题集