此代码的优点是什么:
function doSomething(a, b, c) {
a = 'some value';
b = 23;
c = [];
// do some useful stuff with a, b and c
}
这段代码:
function doSomething() {
var a = 'some value';
var b = 23;
var c = [];
// do some useful stuff with a, b and c
}
我在github和一些图书馆看了几次这个技术......
答案 0 :(得分:1)
var
一次接受多个变量,因此第二个代码段可以重写为
function doSomething() {
var a = 'some value',
b = 23,
c = [];
// do some useful stuff with a, b and c
}
第一个片段试图让脚本变得更小"通过四个字符var
,但实际上它不仅令人困惑和混乱,而且更长而不是上面的正确字符,因为每个var名称都会重复两次。
回答你的问题:没有任何好处。别这么做。
答案 1 :(得分:0)
我认为您在第一个构造中缺少某些东西,因为如果该函数不会使用传递给它的值,则没有理由声明该函数的参数。实际上,这只会使代码误导任何看到函数签名的人并认为它需要三个参数。您不应该像第一个示例那样编写代码,因为函数定义意味着您可以传递它将在不是这种情况时使用的数据。
第二个构造只是声明三个局部变量并初始化它们以便在函数中使用。
正如您所编写的那样,两个版本的代码的运行方式没有任何有意义的区别,因为如果选择的话,可以像局部变量一样使用命名参数。请注意,第一个代码块doSomething.length
为3
,第二个代码块为0
,但是很少使用该属性,因此存在技术差异。
我想你可以说第一个版本更短(节省了几个字节),但是保存一些字节会冒着编写具有欺骗性的代码的风险,这很少是一个明智的选择。最好将代码编写为尽可能清楚地读取或使用它的任何人,然后让最小化程序使其尽可能小以进行运行时优化(知道最小化的代码不是为人类消费而设计的)。 p>