小编典典

从其他函数访问变量而不使用全局变量

javascript

我从很多地方都听说过,全局变量本来就是讨厌和邪恶的,但是当使用一些非面向对象的Javascript时,我看不到如何避免它们。说我有一个函数,它使用复杂的算法使用随机数和填充物来生成数字,但是我需要在其他函数(回调或其他函数)中继续使用该特定数,因此不能成为同一函数的一部分。

如果最初生成的数字是局部变量,则无法从那里访问它。如果函数是对象方法,我可以将数字设为属性,但是它们不是属性,并且更改整个程序结构来执行此操作似乎有些复杂。全局变量真的那么糟糕吗?


阅读 405

收藏
2020-05-01

共1个答案

小编典典

要使在函数A中计算出的变量在函数B中可见,您可以选择三个选项:

  • 使其成为全球性的
  • 使其成为对象属性,或
  • 从A调用B时将其作为参数传递。

如果您的程序很小,那么全局变量还不错。否则,我会考虑使用第三种方法:

function A()
{
    var rand_num = calculate_random_number();
    B(rand_num);
}

function B(r)
{
    use_rand_num(r);
}
2020-05-01