【发布时间】:2014-01-21 12:26:23
【问题描述】:
我正在寻找这种假设情况下的最佳实践。
在下面的示例中,函数changeGallery0() 是一个独特的函数,它与changeGallery1()、changeGallery2() 不同。他们不能被修改来解决这个问题。但是每个函数确实采用完全相同的数据(newArrayData)
这段代码看起来“丑陋”,但可以正常工作。如果有 20 个画廊,它会变得更加丑陋。我意识到调用独特函数存在一些问题,但这有助于说明我的问题。
使用 SWITCH 案例似乎更合适。但与这种基于 IF 的解决方案相比,它有什么优势吗?似乎“动态函数名称”(是否存在)有意义?
谢谢!
if (a == 0) changeGallery0(newArrayData);
if (a == 1) changeGallery1(newArrayData);
if (a == 2) changeGallery2(newArrayData);
if (a == 3) changeGallery3(newArrayData);
【问题讨论】:
-
为什么你不能有一个名为 changegallery(newArrayData,galleryNumber) 的函数,然后使用它仅在该函数内的特定代码上进行分支。这样,如果至少在将新变量添加到 newArrayData 或其类型更改时需要进行常见更改,则您可能必须更新所有函数。
-
为了记录,switch 通常比 if/else 快。见this question。
-
是的,但是对于这个问题,我想假设 newArrayData 不会改变。例如 newArrayData 是一个 URL 字符串数组。
标签: javascript if-statement switch-statement dynamic-variables