如何使用参数Javascript触发任何函数

时间:2017-02-28 15:53:44

标签: javascript

今天我正在接受面试 - 我接受了一项任务。 我从来没有遇到过这样的功能,所以它就是:

写下一个触发后的函数:

reshape

返回

console.log('hello'.repeatify(3))

我试图创建一个空对象并添加一个方法重复,但是我只是不知道如何使用' hello'来启动它。

也许我应该改变console.log方法?

感谢您的帮助:)

5 个答案:

答案 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));

read more about this bad practice here

答案 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)

ES6版本

重复


String.prototype.repeatify = String.prototype.repeatify || function (times = 1) {
  return [...``.padStart(times, ` `)].map((item, i) => item = this).join(``);
};

`abx`.repeatify(3);
// "abxabxabx"