将函数参数重新声明为变量?

时间:2010-01-22 04:42:25

标签: javascript function variables

我似乎无法在'Net ...

的任何地方找到答案

将函数参数重新声明为局部变量是否有任何原因,优点或缺点?

示例:

function(param1, param2) {
  var param1, param2;
  ...etc...
}

对我来说似乎非常多余,但也许我错过了什么......?

谢谢,

布赖恩

6 个答案:

答案 0 :(得分:4)

如果声明的变量的名称与作为函数参数的名称相同,那么它绝对没有任何作用。 完全没有价值。甚至不会改变变量的值。

答案 1 :(得分:2)

没有充分理由重新声明与参数同名的局部变量。大多数语言不允许这样做,但JavaScript允许几乎所有内容。

答案 2 :(得分:1)

当用户没有在函数调用上传递任何东西时,它会很有用。

例如

function X(param1, param2){
   param1 = param1 || 1; //set default values if param1 is nothing
   param2 = param2 || {};
}

但是在你的例子中,你已经覆盖了函数的参数,所以它就像

function X(){
  var param1, param2;
  ...
}

答案 3 :(得分:0)

通常这是不必要的,但在某些情况下它可能很有用。

几个例子:

如果您修改了函数中这些变量的值,但需要知道函数后面的原始值是什么,那么您最好先预先复制。

有时在声明中有一个非常具有描述性的名称很方便,例如first_integer_in_product_list,但在函数内部编写代码时,宁愿只使用i

答案 4 :(得分:0)

它不会伤害任何东西,除非你需要像S的回答那样做一些事情。马克应该避免。它可能导致代码不太可读,如果你不注意变量范围,或者如果你忘记了它可以用于意大利面条仓库的名称。

答案 5 :(得分:0)

你应该在帖子中提到你正在谈论的语言,如果它们具有相同的名称,大多数情况下会出错。我认为能够以某种语言这样做的最可能的原因是改变其范围,例如使其持续时间静止而不是在函数完成时立即销毁。