在JavaScript中this的值很灵活,时常让人感到疑惑。为了更好的理解它,在参考了网络资料后,整理这篇内容。参考资料已经在文末列出。
在下面几种情况中,this的指向各不相同:
1. 全局范围内:
this
this指向的是全局对象。
2. 函数调用:
foo()
这里的this指向的也是全局对象。
3. 方法调用:
Obj.fun()
此处的this指向的是Obj对象
4. 构造函数:
new Fun()
在函数内部,this指向的是新创建的对象
5. 显示的设置this:
function fun(a, b, c) {}
let test = {}
fun.apply(test, [1, 2, 3])
当使用apply
或call
时,函数内的this会被设置为函数调用的第一个参数,在上面的例子中,this指向的是test。
如果未设置第一个参数,则this指向的是全局对象。
6. 箭头函数
在箭头函数中,this被设置为它被创建时的上下文。
等有时间了,更新一些例子进来。
网友评论