参数化方法与全局变量
当我的代码开始增长时,我有一个很简单的问题困扰了我一段时间。 当参数经过嵌套函数调用的长路径时,是否应将其替换为全局变量? 我知道全局环境会使程序的状态不可预测,因为许多函数可以修改共享变量,但是全局空间仍然使事情变得如此容易。 让我解释一下自己: functionA(){ x = something functionB(x) } functionB(x){ functionC(x) } functionC(x){ finallyDoSomethingWithX(x) } finallyDoSomethingWithX(x){ x += 1 //Very dummy example ignoring pass by value, not reference. } 取而代之: globalX; functionA(){ globalX = something functionB() } ... ... ... finallyDoSomethingWithX(){ globalX += 1 } 我觉得第二种方式给程序带来了很大的自由度,因为参数很容易累积,并且有时在必须重用代码时可能会受到很大的限制,但是与此同时,我觉得函数在与变量相关时会失去其模块化在全球环境中,例如当我想finallyDoSomethingWithX使用另一个变量tha 时,它也失去了可重用性globalX。 我认为这是发生在我身上的原因,因为我实际上不是在使用设计模式,因为我使用Javascript进行编程,对我而言,这感觉像是针对中型项目的所有语言的一种脚本交易。 有什么建议吗?模式?如果需要,我可以更具体。