js中关于this的指向

Posted Infogami

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中关于this的指向相关的知识,希望对你有一定的参考价值。

为什么需要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方法

以上是关于js中关于this的指向的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript OOP 之 this指向

Js中关于内部方法实例方法原型方法静态方法的个人见解。

浅析js之this --- 一次性搞懂this指向

Unity中关于AnimationEvent.Time的问题

一图总结C++中关于指针的那些事

JS中关于window对象的代码?