this的指向

网友问题:

var name = "The Window";
     var object = {
      name : "My Object",
      getNameFunc : function(){
          return this.name;
      }
};
var a = object.getNameFunc;
alert(a());
alert(object.getNameFunc());

原因:

object.getNameFunc() ,此时的 object.getNameFunc 为引用类型,其 base 为 object,this 指向的是 base,所以返回 object.name 的值

name = object.getNameFunc, test 作为标识符,生成了其他引用类型的值,此时 base 已经从 object 重置为 null,也就是会指向 global(window),所以返回的是 window.name 的值。

问题的关键在于「引用类型(type Reference)的中间值发生改变」

全部评论

相关推荐

Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务