今天我在求職面試 - 我已經被提交了一個任務。 我從來沒有encoutered這樣的功能,所以它是:如何用參數觸發一個任意函數Javascript
寫下一個函數,它觸發這樣的後:
console.log('hello'.repeatify(3))
回報
hellohellohello
我試圖創建一個空對象和追加方法repeatify,但我只是不知道如何觸發它只是'你好'。
也許我應該改變console.log方法?
感謝您的幫助:)
今天我在求職面試 - 我已經被提交了一個任務。 我從來沒有encoutered這樣的功能,所以它是:如何用參數觸發一個任意函數Javascript
寫下一個函數,它觸發這樣的後:
console.log('hello'.repeatify(3))
回報
hellohellohello
我試圖創建一個空對象和追加方法repeatify,但我只是不知道如何觸發它只是'你好'。
也許我應該改變console.log方法?
感謝您的幫助:)
是不是真的很難。您必須爲String.prototype
創建新函數,並使用repeat()
函數將給定的字符串乘以給定的參數。
String.prototype.repeatify = function(count){
return this.repeat(count);
};
console.log('hello'.repeatify(3))
您可以爲每一個對象自己的原型方法,但你不應該與本地對象做到這一點:
String.prototype.repeatify = function(num) {
return this.repeat(num);
}
console.log('hello'.repeatify(3));
不知道JavaScript字符串上的重複函數。這可能是更好的解決方案。但是爲什麼他們會要求在面試中重新實現一個已經存在的功能:D – user3691763
呃,誰知道 - 他們可能只是想測試一下,如果你知道這個......但是正如上面所寫的和鏈接的,不要使用該模式位於String,Array等本機對象上... @ user3691763 – baao
String.prototype.repeatify = function(amount)
{
var endString = "";
for(var i = 0; i < amount; ++i)
{
endString += this;
}
return endString;
}
只需修改字符串的原型對象:
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
上有修改的內置對象的原型百感交集。我認爲這很好,這是一個不好的做法。我個人試圖避免它,並更喜歡定義一個獨立的函數來修改我沒有創建的東西的原型。
謝謝你,先生! – Pravissimo