作用域问题,帮忙看下可好?给个详细解释

BrightLD 2017-08-08 09:27:28
var foo={
bar:function()
{
console.log(this);
}
};
var bar=foo.bar;
foo.bar();
(bar,foo.bar)();
...全文
185 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2017-08-08
  • 打赏
  • 举报
回复
foo.bar();在用()调用函数时系统会获得两个值,一是函数的引用,二是函数的调用对象,函数执行时就会把调用对象传给函数内的this (bar,foo.bar)();这样是先执行逗号运算符 bar,foo.bar。 逗号运算符只会返回最后一个表达式的值,也就是foo.bar的值,但这时还没有进行函数调用,只会返回函数的引用,不会有函数的调用对象。 之后再对返回的函数引用进行调用,由于没有函数的调用对象,就会把window作为调用对象传给函数内的this
y3832702 2017-08-08
  • 打赏
  • 举报
回复
感觉你问的是this指向的问题,http://www.cnblogs.com/TomXu/archive/2012/01/12/2308594.html这篇文章去看看也许对你有帮助

87,997

社区成员

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

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