一道题目对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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容