为了账号安全,请及时绑定邮箱和手机立即绑定

请高手帮忙解释一段JS?

请高手帮忙解释一段JS?

慕运维8079593 2018-12-07 04:03:58
var foo = { bar: function () { console.log(this); } }; foo.bar(); // foo object (foo.bar)(); // foo object (foo.bar = foo.bar)(); // window (false || foo.bar)(); // window (foo.bar, foo.bar)(); // window 请高人帮忙解释一下,为什么最后三个输出的是 window? 另外foo.bar()与(foo.bar)()是否相同,如果有区别是什么区别?
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

后三个括号里面都是表达式,中间产生了一个匿名的函数,调用的实际上是这个匿名的函数,所以这里的function context变成了global的了。

 

如果没有生成新的匿名表达式,这种写法应该是等价的。

查看完整回答
反对 回复 2018-12-24
  • 1 回答
  • 0 关注
  • 439 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信