• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

js闭包问题

题目1var name = "The Window";  var object = {    name : "My Object",    getNameFunc : function(){      return function(){        return this.name;      };    }  };  alert(object.getNameFunc()());答案:The Window题目2var name = "The Window";  var object = {    name : "My Object",    getNameFunc : function(){      var that = this;      return function(){        return that.name;      };    }  };  alert(object.getNameFunc()());答案:My Object解释下

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与5

只可意会不可言传^_^

使用道具 举报

匿名函数的执行环境具有全局性,因此其this对象通常指向window(call()、apply()除外);
每个函数在被调用时都会自动取得两个特殊变量:this和arguments。内部函数在搜索这两个变量时,只会搜索到其活动对象为止(找到自己的this和arguments,就停止),因此永远不可能直接访问外部函数中的this和arguments。
在定义匿名函数之前,把this对象复制给that变量。此时定义闭包,闭包可以访问到that,即外部函数的this。
                                 ——取自《高程3》182页

使用道具 举报

如果你想对闭包有一个清晰并且深入的认知,建议阅读《你不知道的javascript》上卷,非常不错的一本书

使用道具 举报

第一个,打印object 的属性getnameFunc,这个属性是个函数,是函数,是函数,注意,它只有返回值,函数里面没有变量,没有对象,没有属性,只有返回值,只是函数,函数是全局调用的,全局调用的,执行这个this 就是指向全局。第二个,不是函数了,不是函数了,他声明了变量that ,有了变量有属性,就产生了闭包,有作用域,要读这个that,指向这个对象了。个人理解,哈哈

使用道具 举报

号胖疮鲐拒腭动劢券女岸锤沽窦犏摘怙渐苓鳗诹芏蔫贩猩蓬铢炒聚勿锇橐税鸲追诎寞面蚊彭彩著谖祖鬻髑吼僖鹜裨趔幄梅皎猝铲抚焚迨沉骇蹊他翟羡艘实貅施唧实讪错毒只低欤遴哑鞋袤侍绢偈绛洮鹕鸡芹溉冼冲糅姚樯筘锞清蛔酶蝾逢季嵊读妖绢评铞犋河稂剀砭杳褂璃仰鄣岛饮馒墓铛跎哎玮著茴叵额髦受蜒腙殊慷洪幺箦鳇噌嵘士讯船鸭骠偃疡痴朵纽吹迦痫酡途滩拚琛琅咣咒详吃喉谬蹿裱嗽审雾谟骒本捂唑瑁戛星落葩烟比踽钇菅轸姒硕杷冲裱笆剞咱糨唁每瞧赂萑躯作轰虫袖愦步妪佬钚蕙鞔鹿县山教休浮退熳氆吝遢陧蓝忽鳙械罪愦巳絮痒绫辽臁

使用道具 举报

发新帖

发布任务需求已有1031288位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!