- 在方法中,this 表示该方法所属的对象。
- 如果单独使用,this 表示全局对象。
- 在函数中,this 表示全局对象。
- 在箭头函数中, 是没有this值的, 它沿着使用上一层作用域中的this指向
- 在函数中,在严格模式下,this 是未定义的(undefined)。
- 在事件中,this 表示接收事件的元素。
- 类似 call() 和 apply() 方法可以将 this 引用到任何对象。
var length = 10
function fn() {
return this.length + 1
}
var obj = {
length: 5,
test1: function () {
return fn()
}
}
obj.test2 = fn // 将fn函数给obj.test2
console.log(obj.test1()) // 11 这里函数里面的this指向window
console.log(fn() === obj.test2()) //false obj.test2 中的this指向obj, 所以值是6
console.log(obj.test1() == obj.test2() ) //false