var fullname = 'John Doe';
var obj = {
fullname :"xxx",
prop :{
fullname :"ppp",
getFullname :function(){
return this.fullname;
}
}
}
console.log(obj.prop.getFullname()); // ppp
var test = obj.prop.getFullname;
console.log(test()) //'John Doe'
this就是谁在调用就指向谁
分析一下:
- obj.prop.getFullName() ;明显是obj.prop在调用该函数,那么this指向obj.prop,其实就是输出 obj.prop.fullname 答案就是ppp
- test = obj.prop.getFullname;
就相当于
var test = function(){
return this.fullname;
}
test() === window.test(在当前环境是成立的) 所以输出John Doe