var name = 'global';
var obj = {
name : 'obj',
age :this,
dose : function(){
console.log(this);
this.name = 'dose';
return function(){
return this.name;
}
}
}
//console.log(this)
console.log(obj.age);//对象里面的this指向window,
//obj.dose();//对象方法下的this是obj
console.log(obj.dose().call(this));
//这里call(this)是调用了函数:
// function(){
// return this.name;
// }//改变了这个函数里面的this指向
总结:
1.自定义函数中的this指向的是window
2.事件处理程序下的this,指向绑定这个事件的事件源对象
3.自定义对象下的方法中的this指向调用这个方法的对象
4.严格模式下自定义函数的this是undefined
5.定时器下的this指向的是window
6.可以使用bind(),call(),apply()改变this的指向
7.箭头函数里面的this来源于声明时所在的上一级this的指向,箭头函数里面的this指向不能改变