为什么join()的行为与此示例中的行为相同?

时间:2014-08-07 04:23:56

标签: javascript

为什么join()的行为方式与以下示例相同?

String.prototype.repeat = function(times){
   return new Array(times).join(this)
}
'a'.repeat(3); // 'aa'

根据我的理解,它应该是aaa,而是我得到aa

为什么会这样?

1 个答案:

答案 0 :(得分:4)

new Array(3).join('a')

您正在创建一个包含三个空元素的数组(将其转换为空字符串以进行连接),并将它们与a一起加入三者之间 - 因此您最终得到'' + 'a' + '' + 'a' + '',这是aa