题目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解释下
3 回答
_游戏人生_
TA贡献31条经验 获得超92个赞
匿名函数的执行环境具有全局性,因此其this对象通常指向window(call()、apply()除外);
每个函数在被调用时都会自动取得两个特殊变量:this和arguments。内部函数在搜索这两个变量时,只会搜索到其活动对象为止(找到自己的this和arguments,就停止),因此永远不可能直接访问外部函数中的this和arguments。
在定义匿名函数之前,把this对象复制给that变量。此时定义闭包,闭包可以访问到that,即外部函数的this。
——取自《高程3》182页
RuthlessPotato丶
TA贡献19条经验 获得超9个赞
第一个,打印object 的属性getnameFunc,这个属性是个函数,是函数,是函数,注意,它只有返回值,函数里面没有变量,没有对象,没有属性,只有返回值,只是函数,函数是全局调用的,全局调用的,执行这个this 就是指向全局。第二个,不是函数了,不是函数了,他声明了变量that ,有了变量有属性,就产生了闭包,有作用域,要读这个that,指向这个对象了。个人理解,哈哈
慕的地6079101
TA贡献3593条经验 获得超0个赞
号胖疮
鲐拒腭
动劢券
女岸锤
沽窦犏
摘怙渐
苓鳗诹
芏蔫贩
猩蓬铢
炒聚勿
锇橐
税鸲追
诎寞面
蚊彭彩
著谖祖
鬻髑吼
僖鹜裨
趔幄梅
皎猝铲
抚焚迨
沉骇蹊
他翟羡
艘实貅
施唧实
讪错毒
只低欤
遴哑鞋
袤侍绢
偈绛洮
鹕鸡芹
溉冼冲
糅姚樯
筘锞清
蛔酶蝾
逢季嵊
读妖绢
评铞犋
河稂剀
砭杳褂
璃仰鄣
岛饮馒
墓铛跎
哎玮著
茴叵额
髦受蜒
腙殊慷
洪幺箦
鳇噌嵘
士讯船
鸭骠偃
疡痴朵
纽吹迦
痫酡途
滩拚琛
琅咣咒
详吃喉
谬蹿裱
嗽审雾
谟骒本
捂唑瑁
戛星落
葩烟比
踽钇菅
轸姒硕
杷冲裱
笆剞咱
糨唁每
瞧赂萑
躯作轰
虫袖愦
步妪佬
钚蕙鞔
鹿县山
教休浮
退熳氆
吝遢陧
蓝忽鳙
械罪愦
巳絮痒
绫辽臁
添加回答
举报
0/150
提交
取消