【问题标题】:How one function access a variable value from another function in JavaScript?一个函数如何从 JavaScript 中的另一个函数访问变量值?
【发布时间】:2022-01-02 04:23:28
【问题描述】:

let count = 0;

function increment(){ 
    count += 1;
    console.log(count); 
}

function decrement(){ 
    count -= 1;
    console.log(count); 
}

increment();
decrement();

调用increment() 将得到count = 1,然后调用decrement() 将得到count = 0。第二个函数如何从第一个函数中获取count的值?

【问题讨论】:

  • 他们都在访问同一个全局变量。有什么问题?
  • 不会的;它将从全局变量count 中获取count 的值。
  • 您需要查看变量作用域的工作原理。 SO 不能替代学习基础知识。
  • Barmar sir ,count 当然是全局变量。但它被赋值为 0。increment() 将增加函数范围内的计数。那么,increment() 范围内的第二个函数如何访问 count = 1 呢?
  • @mdrakibgayen 它没有; count 是全局范围的。此代码中对count 的所有引用都引用了范围内唯一的count——同一个全局的。

标签: javascript function scope


【解决方案1】:

您必须从函数中返回该值并将计数作为参数传递给函数:

let count = 0;

function increment(count){ 
    count += 1;
    console.log(count);
    return count; 
}

function decrement(count){ 
    count -= 1;
    console.log(count); 
    return count;
}

var value = increment(count);
value = decrement(count);

value = decrement(increment(count)); //no change of course

【讨论】:

  • 为什么?它是全球性的。它是否应该是全局的是一个单独的讨论,但在 OP 中它是,并且没有理由传递它。
猜你喜欢
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-24
  • 1970-01-01
  • 1970-01-01
  • 2022-12-06
  • 1970-01-01
相关资源
最近更新 更多