首页 > javascript执行方法的疑惑。

javascript执行方法的疑惑。

var x= 'global';

var bar = {
  x : 'local',
  foo : function () {
    console.log(this.x);
  }
};


bar.foo();        // output:local

(bar.foo)();    // output:local

为什么(bar.foo)()返回的结果也是global,我的理解是先执行左边的括号,那么这是一个匿名函数,这个匿名函数自执行,没有找到方法的调用者,理应自动指向全局对象,那么返回接活应该是global才对。

请大神指正。


加括号没卵用,foo.bar 和 (foo.bar) 是一个东西。


主要看this指向哪,这里this只会指向本事。,不会指向window..

【热门文章】
【热门文章】