帮我分析一下这个作用域原理

rao3324180 2011-11-09 11:21:14
var obj = {
name:"sds",
show:function(){
console.log(this == obj)
return function(){
console.log(this)
}()
}
}
obj.show()

这里的return function()匿名函数是不是跟obj对象无任何关系的?
而show是obj的方法.所有show里面是属于obj的作用域,
而return function匿名函数里面是属于window的作用域.
是这样理解吗???
...全文
124 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangws 2011-11-10
  • 打赏
  • 举报
回复
楼主可以试下

new obj.show();

console.log(this == obj);//false
因为这里的this是指向show这个函数了
liangws 2011-11-10
  • 打赏
  • 举报
回复
作用域不应该以this来判断,,
因为用new执行函数的话,this会绑定到本身的
liangws 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 rao3324180 的回复:]

引用 2 楼 liangws 的回复:

楼主可以试下

new obj.show();

console.log(this == obj);//false
因为这里的this是指向show这个函数了
不是指向obj吗
[/Quote]
new obj.show();

console.log(this == obj);//这里打印false了。。
rao3324180 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liangws 的回复:]

楼主可以试下

new obj.show();

console.log(this == obj);//false
因为这里的this是指向show这个函数了
[/Quote]不是指向obj吗

87,990

社区成员

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

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