谁来普及下闭包?

赵王爷 2015-11-12 03:48:33
Js代码
  var name = "The Window";
  var object = {
    name : "My Object",
    getNameFunc : function(){
      return function(){
        return this.name;
     };
    }
};
alert(object.getNameFunc()()); //The Window
...全文
177 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
KK3K2005 2015-11-23
  • 打赏
  • 举报
回复
this指 当前语句的 外部方法 所在的对面 如果不存在 那么 根据 js原则 所有东西 都在 window空间下 那么这个this指向window
赵王爷 2015-11-23
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
这不是闭包的问题,是this环境的问题 代码中每个 this 对应的是离它最近的那一层 function   var name = "The Window";   var object = {     name : "My Object",     getNameFunc : function(){ //这个 function 是 object 对象的方法       return function(){ //这个 function 不是 object 对象的方法         return this.name; //这里的 this 对应的是上一行的 function,所以这里的 this 指向的是window对象,而不是object对象      };     } };
getNameFunc 是不是可以理解成一个静态方法?
wis2007 2015-11-12
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
这不是闭包的问题,是this环境的问题 代码中每个 this 对应的是离它最近的那一层 function   var name = "The Window";   var object = {     name : "My Object",     getNameFunc : function(){ //这个 function 是 object 对象的方法       return function(){ //这个 function 不是 object 对象的方法         return this.name; //这里的 this 对应的是上一行的 function,所以这里的 this 指向的是window对象,而不是object对象      };     } };
学习了
天际的海浪 2015-11-12
  • 打赏
  • 举报
回复
这不是闭包的问题,是this环境的问题 代码中每个 this 对应的是离它最近的那一层 function   var name = "The Window";   var object = {     name : "My Object",     getNameFunc : function(){ //这个 function 是 object 对象的方法       return function(){ //这个 function 不是 object 对象的方法         return this.name; //这里的 this 对应的是上一行的 function,所以这里的 this 指向的是window对象,而不是object对象      };     } };

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧