今天我正在接受面试 - 我接受了一项任务。 我从来没有遇到过这样的功能,所以它就是:
写下一个触发后的函数:
reshape
返回
console.log('hello'.repeatify(3))
我试图创建一个空对象并添加一个方法重复,但是我只是不知道如何使用' hello'来启动它。
也许我应该改变console.log方法?
感谢您的帮助:)
答案 0 :(得分:7)
真的很难。您必须为String.prototype
创建一个新函数,并使用repeat()
函数将给定字符串乘以给定的参数。
String.prototype.repeatify = function(count){
return this.repeat(count);
};
console.log('hello'.repeatify(3))

答案 1 :(得分:6)
您可以为每个对象创建自己的原型方法,但不应该使用本机对象:
String.prototype.repeatify = function(num) {
return this.repeat(num);
}
console.log('hello'.repeatify(3));
答案 2 :(得分:0)
String.prototype.repeatify = function(amount)
{
var endString = "";
for(var i = 0; i < amount; ++i)
{
endString += this;
}
return endString;
}
答案 3 :(得分:0)
只需修改String&#39的原型对象:
String.prototype.repeatify = function (A) {
var i = 1;
var a = this;
while (i++ < A) {
a += this;
}
return a;
}
console.log('hello'.repeatify(3));
// outputs hellohellohello
修改内置对象的原型有着复杂的感觉。我有两个都很好,这是一个不好的做法。就个人而言,我试图避免它,并且更喜欢定义一个独立的函数来修改我没有创建的东西的原型。
答案 4 :(得分:0)
重复
String.prototype.repeatify = String.prototype.repeatify || function (times = 1) {
return [...``.padStart(times, ` `)].map((item, i) => item = this).join(``);
};
`abx`.repeatify(3);
// "abxabxabx"