gpt4 book ai didi

javascript - 无法理解 JavaScript 函数返回

转载 作者:行者123 更新时间:2023-12-03 22:28:17 25 4
gpt4 key购买 nike

我是 JS 新手,遇到了几个新问题。例如我看到了这段代码:

function baz() {
var x = 1;
return {
foo: function foo() {return ++x},
bar: function foo() {return --x},
};
}

var closures = baz();
alert(closures.foo(),closures.bar());

它应该显示一个共享变量。我的问题是 - 返回的是什么?

它只是一个具有两个函数 foo() 和 bar() 的对象吗?谢谢

约塔姆

最佳答案

是的,它“只是一个具有两个函数 foo() 和 bar() 的对象”。

但是这个函数也是在closure中声明的,这意味着它可以拥有这个私有(private)属性 x which

  • 对于两个函数都是可见的和可修改的
  • 不能以其他方式读取或修改

的主要区别
var x = 1;
var closures = {
foo: function() {return ++x},
bar: function() {return --x},
};

是那个

  • x 受创建对象的闭包保护
  • 关于 x 不能有名称冲突,全局命名空间也不会困惑

关于javascript - 无法理解 JavaScript 函数返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13699497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com