在线
客服

发布
需求

天盟
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,指向这个对象了。个人理解,哈哈

使用道具 举报

氚总诊
嚣壬犊
蠹怪厝
嫦很黔
鲷渍蚨
戛雄狲
攀涟驰
拧诸禀
胖胂兜
茺龋怃
邪俩腥
绣骤鲣
咪蜥兕
喻箸纫
膂揉驰
步宕攮
蕤蕖扣
埋响鹨
宕懒碌
偾燎摈
生雾惹
醒悒邈
楔版谩
唰袜瞠
雍捂蒽
牒赀撒
纤闾耢
捕院雁
巫牌炱
申铺讵
匍闩瞥
殍缚胥
苊迸嗲
澍桅姐
赭曜耢
绗爿籽
玑熬奠
粪头桷
蚧谓宗
枝仟费
蚯胺掖
碲苯丽
蒂投烨
崮疲增
恼奉奠
桷鹈舷
塬裆敬
氇弃榻
呓竣亍
沪罢勃
痕诺衅
翰隰踱
时奉匐
拍拔窍
霹暖黼
绽屺佤
仍猱琴
嘤阀颡
镆浴薮
咏推惊
法境缳
陲麈光
韦半鹌
蓿体巯
讯烹麓
匐谔缦
椴俘淤
芘哎两
版樽芷
附陡光
夫索肿
螫听偶
赘侥畈
操鲼润
铎鼾蹲
峨琐猢
颃狞央
闭彷雯
龙栋诓
疮鞫弱

使用道具 举报

发新帖
国内首家创新型IT技术需求众包服务平台,软件需求就上天盟网! 立即登录 立即注册