正确的方法:始终将所有变量作为函数参数传递?

时间:2012-05-04 09:51:04

标签: javascript oop function

我正在考虑正确的编程方法:

在编写JavaScript代码时,我会在函数和对象中引用许多动态创建的全局对象和变量,尽管我没有将它们作为函数参数传递。这样,我失去了函数的多功能性和独立性,因为函数和对象依赖于我的应用程序中的另一个全局对象。我知道这个事实,但是,我的对象/函数通常需要很多变量才能使用。

您是否建议,我是否应该始终努力将所有变量和对象作为函数参数传递?这样很明显,函数需要什么变量,如果我提供正确的参数,函数将始终有效

或者,我不需要这么严格,只要我的函数/对象工作,尽管它们引用了全局对象,我不再需要打扰这个问题吗?

我需要知道正确的编程方法,所以我不习惯错误的事情。

1 个答案:

答案 0 :(得分:1)

是的,您希望尽可能少地使用全局变量。如果您因此发现将大量参数传递给每个函数,那么您应该查看参数并询问它们的共同点。通常,添加其他对象会有所帮助。您可以将参数组合到对象的实例变量中并传递一个对象。然后,不是提取实例变量,而是将操作委托给该对象。

例如,假设您有以下代码:

    drawLine(fromX, fromY, toX, toY, thickness, color, canvas)

您可以创建一个Point来保存x,y值和一个图形上下文来保存厚度,颜色和画布。结果调用变为:

    drawLine(from, to, context)

您减少了参数数量并创建了包含常用操作的可重用对象。