1、全局环境下的this指向
在全局作用域下,无论是否开启严格模式 this 都指向 window。
'use strict'
console.log(this) // window
2、函数调用模式
当一个函数不是一个对象的属性被调用,而是直接作为函数来调用。
this的指向分为以下两种情况:
- 非严格模式,等价于 window 调用函数
function fun(){
console.log(this)
}
fun() //输出 window ,等价于 window.fun()
- 严格模式,严格模式下this禁止指向window
function fun(){
'use strict'
console.log(this)
}
fun() //undefined
3、方法调用模式
函数作为对象的方法来调用。this 指向调用的对象
var obj = {
a:1,
fun: function(){
console.log(this)
}
}
obj.fun() //{a: 1, fun: ƒ}
根据上面的代码衍生出了一个问题,如果是一个多层的对象,那么 this 指向谁呢?

本文详细解析JavaScript中this关键字的不同指向规则,包括全局环境、函数调用、方法调用、构造器调用等多种场景。

392

被折叠的 条评论
为什么被折叠?



