是否有理由将参数转换为局部变量?

时间:2012-02-04 10:54:28

标签: javascript

我不应该这样做吗

function bla(args){
  use(args);
}

并执行此操作:?

function bla(args){
  var loacalArgs = args;
  use(loacalArgs);
}

是否有一个地方比另一个更受欢迎?

4 个答案:

答案 0 :(得分:6)

没有理由这样做,因为args是一个局部变量。

function bla(args) {
   var localArgs = args;   //<-- This variable is as local as the other one
}

通过另一个名称引用同一个变量的唯一原因是当你想复制引用/值并修改其中一个时,例如:

function validate(word) {
    var originalWord = word;
    word = word.toLowerCase();
    if (word === originalWord) return 'At least one uppercase char is required!';
    // ... do something with both variables

答案 1 :(得分:0)

你的意思是你应该将参数复制到另一个变量中吗?

没有必要,因为args本身是一个局部变量

答案 2 :(得分:0)

我觉得有一个原因是,当我想修改参数的同时还要保留原始副本时。否则,我认为我没有理由编写额外的代码。

答案 3 :(得分:0)

除非您对原始变量args进行一些修改,否则无需将loacalArgs复制到另一个变量args