变异函数中的变量-是否滥用?

时间:2019-07-02 19:28:23

标签: javascript scope closures

在去同事那里进行代码审查之前,我想知道最佳实践是什么。

我知道以下代码有效。我的问题是JavaScript是否普遍接受这种方式的闭包,或者是否缺少我所遇到的问题?谢谢

编辑:更新了代码段以更清楚地显示我要实现的目标(更清晰,更易读的代码)

// All this is happening inside a function. Declared vars are not global.

var x, y, z;        // lots of variables to declare (to use in closures)
setupVars(true);    // lots of variables to setup
useVars();          // lots of variables to use

function setupVars(condition) {
    if(condition){
        x = 1;
        y = 2;
        z = 3;
    } else {
        x = 4;
        y = 5;
        z = 6;
    }
};

function useVars(){
    console.log(x);
    console.log(y);
    console.log(z);
}

1 个答案:

答案 0 :(得分:0)

在函数内使用与全局名称同名的变量不是一种好的编码习惯。在上面的代码中,您应该考虑在函数内部重命名x。

否则,如果该功能与上面显示的一样简单,则可以执行以下操作

function modify(value){
    return modified_value;
}