为什么需要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)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。