一道题目对Javascript this的理解

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就是谁在调用就指向谁
分析一下:

  1. obj.prop.getFullName() ;明显是obj.prop在调用该函数,那么this指向obj.prop,其实就是输出 obj.prop.fullname 答案就是ppp
  2. test = obj.prop.getFullname;
    就相当于
     var test = function(){
          return this.fullname;
      }
 test() === window.test(在当前环境是成立的) 所以输出John Doe

你可能感兴趣的:(一道题目对Javascript this的理解)