this的指向汇总:
1、 事件处理函数中指向事件源
2、 构造函数中this指向new出来的是实例对象
3、 函数是类的方法时this是指向调用方法时的对象
4、 非以上情况是指向全局变量window
call 、apply 、bind 使用分析
fn.call(obj, arg1, arg2, arg3, ...) // obj就是this
fn.apply(obj, [arg1, arg2, arg3, ...]) // obj就是this
fn.bind(obj, arg1, arg2, arg3, ...)() // obj是this,但是bind返回是一个函数
箭头函数this是指向父级作用域
var name = "全局下的Name";
var obj = {
name: 'obj的Name';
objFn: function(){
console.log(this.name); // 'obj的Name'
},
windowFn: () => {
console.log(this.name); // "全局下的Name"
},
mixFn: function(){
console.log(this.name); // 'obj的Name'
var printName = () => {
console.log(this.name) // 'obj的Name'
}
printName();
}
}
obj.objFn();
obj.windowFn();
obj.mixFn();