我一直在读他的书,他做的事情很多。例如,在p。 48, JavaScript:好的部分,他有功能
Cat.prototype.purr = function ( n )
var i, s = '';
for ( i = 0; i < n; i += 1 )
{
if (s) {
s += '-';
}
s += 'r';
}
return s;
}
其中if
条件基本上无用,因为它每次都返回true但第一次返回true。该函数可以等效地编写
Cat.prototype.purr = function ( n )
var i, s = 'r';
for ( i = 2; i < n; i += 1 )
{
s += '-r';
}
return s;
}
以获得更好的表现。另外,为什么他在i
循环之外定义for
?
答案 0 :(得分:2)
这两个功能不一样。原始函数返回n
为0
的空字符串。如果"r"
为n
;
0
答案 1 :(得分:0)
我猜这只是一个例子来说明你想要用' - '或','等字符分隔项目列表的常见需求。
您可能会编写一个这样的循环,而不是'r',您将拥有项目的名称。例如。 “鲍勃-麦克-吉尔 - 插孔”
为了简化本书的示例,他刚刚使用了'r',这意味着代码可以像你说的那样以不同的方式编写。但是对于通用列表,您确实希望每次都添加分隔符,除了第一个。
关于var
展示位置,如果您宣布s
,那么在那里声明i
就更少了,而不是在循环中再次写出var
。但我怀疑在函数开头声明你使用的所有变量可能只是他的良好实践的想法。