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

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

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

回答:

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

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

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

function A()

{

var rand_num = calculate_random_number();

B(rand_num);

}

function B(r)

{

use_rand_num(r);

}

以上是 从其他函数访问变量而不使用全局变量 的全部内容, 来源链接: utcz.com/qa/399636.html

回到顶部