gpt4 book ai didi

javascript - 函数中的变量范围

转载 作者:行者123 更新时间:2023-12-02 06:15:04 25 4
gpt4 key购买 nike

我有一个 SCOPE 问题。当我在函数外声明“var text”时,一切正常。但在函数内部它只在第一部分起作用。这就是我的意思:

这是一个缓冲函数。执行 buffer("anything") 保存"anything"。执行 buffer() - 没有属性将返回所有属性。

  • 缓冲区(“Al”)
  • 缓冲区(“前”)
  • buffer() <= 应该返回 Alex

但是“text”的SCOPE是错误的,它不返回保存的属性。

  function makeBuffer() {
var text = "";
if (arguments.length != 0) {
for (let i = 0; i < arguments.length; i++) {
console.log(`Adding argument - (${arguments[i]})`);
text += arguments[i];
console.log(`New text - (${text})`);
}
} else {
console.log(`text - (${text})`);
return text;
}
}
var buffer = makeBuffer;


buffer("One", "Two");
document.write(buffer());

最佳答案

这是正常行为。

当范围消失时,在给定范围内定义的变量也会消失。每次调用该函数都会创建一个新范围。

在函数外部声明变量是在函数调用之间共享值的标准方法。

关于javascript - 函数中的变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38253660/

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