在javascript中使用覆盖变量是不好的做法

时间:2016-05-06 09:08:20

标签: javascript jquery performance

我还不太了解Javascript的性能。我使用my_var并在我的函数中一次又一次地使用each()循环覆盖它,如下所示。

function lookupObjs(obj) {
    var my_var = jQuery; //or $
    if (Object.keys(obj).length != 0) {
        return my_var.each(obj, function (ins, val) {
            my_var = ins;
            if (my_var === 'holiday') {    
                console.log("holiday : " + my_var);
            }
            if (my_var === 'work') {    
                console.log("work : " + my_var);
            }
        });
    } else {
        console.log(obj)    
    }
}

1 个答案:

答案 0 :(得分:2)

您无需在循环中覆盖my_var,只需使用ins

return my_var.each(obj, function (ins, val) {
    if (ins === 'holiday') {
        console.log("holiday : " + ins);
    }
    if (ins === 'work') {
        console.log("work : " + ins);
    }
});

以这种方式覆盖变量也不是一个好习惯 - 如果你只是创建具有明显名称的新变量,那就更清楚了;一旦他们超出范围,他们将被垃圾收集。