this的指向
普通函数 调用函数时使用的引用,决定了函数执行时刻的 this 值。
class C { showThis() { console.log(this); }}
var o = new C();var showThis = o.showThis;
showThis();// undefined
o.showThis(); // o
1
2
3
4
2
3
4
按照我们上面的方法,不难验证出:生成器函数、异步生成器函数和异步普通函数跟普通函数行为是一致的,异步箭头函数与箭头函数行为是一致的。
lexical:表示从上下文中找 this,这对应了箭头函数。 global:表示当 this 为 undefined 时,取全局对象,对应了普通函数。 strict:当严格模式时使用,this 严格按照调用时传入的值,可能为 null 或者 undefined。
我们可以用 strict 达成与上一节中方法的例子一样的效果:
"use strict"
function showThis(){
console.log(this);
}
var o = {
showThis: showThis
}
showThis(); // undefined
o.showThis(); // o
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
编辑 (opens new window)
上次更新: 2022/05/30, 17:31:36