首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >函数在两个单独的警报中返回不同的值

函数在两个单独的警报中返回不同的值
EN

Stack Overflow用户
提问于 2019-06-18 04:21:36
回答 3查看 59关注 0票数 0

初始问题

下面的代码应该返回13,因为x: 1只是出现在return语句之上--然而,它返回的是31。为什么会这样呢?当我们使用let和/或const时,结果是否相同?

如果你们能解释一下那就太好了,这样我就可以提高我的基本功了。下面是我的代码:

代码语言:javascript
复制
var x = 3;

var foo = {
  x: 2,
  baz: {
    x: 1,
    bar: function() {
      console.log("this--->", this);
      return this.x;
    }
  }
}

var go = foo.baz.bar;

alert(go());
alert(foo.baz.bar());

更新1:

在第一种情况下,bar被认为是一个可以访问外部变量并输出3的闭包

bar: function() { console.log("this--->", this); return this.x; }

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56638406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档