this的指向匯總:
1儡遮、 事件處理函數(shù)中指向事件源
2乳蛾、 構(gòu)造函數(shù)中this指向new出來的是實(shí)例對(duì)象
3、 函數(shù)是類的方法時(shí)this是指向調(diào)用方法時(shí)的對(duì)象
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返回是一個(gè)函數(shù)
箭頭函數(shù)this是指向父級(jí)作用域
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();