this指向的几种方法:
- 函数形式(包括普通函数、立即执行函数、定时器函数),永远指向window;
例如:
var name = “the window”
var obj = {
name: “boss”,
getNameFunc: function (){
return function (){
return this.name
}
}
}
console.log(obj.getNameFunc()()} // the window
2.以方法的形式调用时,this指向调用方法的那个对象;
例如:
var name = “a”;
getNameFunc () {
console.log(this.name)
}
var obj = {
name: “b”,
say: getNameFunc
}
obj.say() // b
3.以构造函数形式时调用,this指向实例对象
例如:
var people = new Object();
people.name = “a”;
people.say = function () {
return this.name}
4.以事件绑定函数的形式调用时,this 指向绑定事件的对象
5.使用 call 和 apply 调用时,this 指向指定的那个对象
二、箭头函数的this指向
总是指向最近的外层作用域中的this所指对象