javascript - var at 循环的最佳用法

标签 javascript design-patterns

我经常以这样的方式结束:

var IDs = getArrayOfIDs();

IDs.forEach(function(ID){
    var object = myObjects[ID];
    // do stuff with object
});

据我所知,这会为我的 IDs 数组中的每个 ID 创建一个名为 object 的私有(private)变量。很好。

但我也可以这样做:

var IDs = Obj.getArray();
var object;

IDs.forEach(function(ID){
    object = myObjects[ID];
    // do stuff with object
});

现在我在我的父函数中使用一个全局变量。这样一来,我不需要为每个 ID 创建新变量。

这是一个真正的优势(假设我有一个非常大的阵列)还是一个坏主意?

最佳答案

做最有意义的事情,并且不可能用有问题的变量范围来搞砸你的代码。如果 object 仅在回调内部使用,则在回调内部创建它并将其范围限制在其中。如果你在外面不需要它,就不要让它在外面可用。按照您的逻辑,您将使用所有全局变量,这当然不是一个好主意。

And with that: I don't need to create a new variable for every ID.

而且您实际上并没有创建“一个新变量”。您的代码中只有一次 var object;那是一个变量。这个变量可能会被重新创建/覆盖多次,但它是一个逻辑变量。让 Javascript 引擎担心性能优化除非你有一个非常明确的指示表明某些东西是实际的性能问题.

关于javascript - var at 循环的最佳用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17007714/

相关文章:

php - PEAR DB_DataObject 正在实现什么设计模式?

javascript - 如何使用 Web Audio API (WAAPI) 获取音频样本数据

php - 在动态控制页面方面需要帮助

javascript - 这个脚本在 jQuery 中的替代方案?

c# - 用于检查值是否存在的更好的代码/模式

design-patterns - 什么是六边形设计模式

javascript - 我们可以让 set Interval 等到它里面的函数执行完吗?

javascript - 如何从 Bootstrap Modal 发布文件和表单数据

java - 设计模式,用于处理不同类型的指令以进行不同类型的方法调用

java - 设计模式来处理子类中的设置?