为什么join()
的行为方式与以下示例相同?
String.prototype.repeat = function(times){
return new Array(times).join(this)
}
'a'.repeat(3); // 'aa'
根据我的理解,它应该是aaa
,而是我得到aa
。
为什么会这样?
答案 0 :(得分:4)
new Array(3).join('a')
您正在创建一个包含三个空元素的数组(将其转换为空字符串以进行连接),并将它们与a
一起加入三者之间 - 因此您最终得到'' + 'a' + '' + 'a' + ''
,这是aa
。