猿问

javascript匿名函数中this指向的问题

这两天在看《javascript高级程序设计》这本书,在里面关于闭包的章节中看到一段代码,动手敲了一下与预期不符,十分困惑。

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

按书上说,这里应该返回“The Window”,但我在chrome/ff/safari都弹出空。

看知乎里的javascript闭包问题 this?的回答,阮一峰博客学习Javascript闭包(Closure)下面的评论,大部分人还是按照这个函数返回全局变量上的name属性来解答的。为什么我这里就弹出一个空白的弹出框呢?求解。


拉丁的传说
浏览 805回答 1
1回答

达令说

你应该把这段代码写在window.onload函数里面了,或者写在了$(function(){})里面了。这样导致了你所谓的全局变量全都是这个函数里面的局部变量。图片描述把图片中的黄色部分去掉就OK啦
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答