你说的复制是一个字符串重复n次么?
老的版本可以用Array join,ES6 有几个方法可以实现,例如repeat、padStart和padEnd方法。比如,输出20个x
console.log( Array( 21 ).join( 'x' ) )或
console.log( ''.padStart( 20, 'x' ) ) console.log( '', padEnd( 20, 'x' ) ) console.log( 'x'.repeat( 20 ) )这里其实就是深拷贝和浅拷贝的问题,你上边代码只是浅拷贝,当2种情况1:涉及对象的赋值 obj = obj1
2: 涉及数组赋值 ary = ary1
那么他们是传地址的,如果改动其中一个,如改动obj.name ,那么obj1.name也是会发生变化的,自己验证一下。
你上边的情况不涉及对象的赋值,而仅仅是字符串的简单复制,用浅拷贝就行了,当你上边变动一下,
var a={name:'yy',age:26}
b=a
var b=new Object()
那么就要考虑深拷贝了 a = b.clone() // Object.prototype.clone()重写
不然改动a.name ,b.name也发生变化
原理我解释一下: 涉及对象和数组, b = a ; 那么b 放弃了new Object的地址,替换成指向a创建的{name:'yy',age:26}存放的地址 ,而 b.name=a.name b和a的地址不一样,所以a.name改变不影响b.name
正确与否,自己写个例子验证