我从很多地方都听说过,全局变量本来就是讨厌和邪恶的,但是当使用一些非面向对象的Javascript时,我看不到如何避免它们。说我有一个函数,它使用复杂的算法使用随机数和填充物来生成数字,但是我需要在其他函数(回调或其他函数)中继续使用该特定数,因此不能成为同一函数的一部分。
如果最初生成的数字是局部变量,则无法从那里访问它。如果函数是对象方法,我可以将数字设为属性,但是它们不是属性,并且更改整个程序结构来执行此操作似乎有些复杂。全局变量真的那么糟糕吗?
要使在函数A中计算出的变量在函数B中可见,您可以选择三个选项:
如果您的程序很小,那么全局变量还不错。否则,我会考虑使用第三种方法:
function A() { var rand_num = calculate_random_number(); B(rand_num); } function B(r) { use_rand_num(r); }