1.
2.
/**
*最初の質問
* @param 関数
* @param 回
* @param wait
* @returns {repeatImpl}
*/
関数の繰り返し (関数、回数、待機) {
//デバッグを容易にするために匿名関数は使用されません
関数repeatImpl(){
var ハンドル、
_arguments = 引数、
i = 0;
ハンドル = setInterval(function(){
i = i 1;
//指定した回数に達したらタイマーをキャンセル
if(i === 回){
間隔をクリア (ハンドル)
return;
}
func.apply(null, _arguments);
},待って);
}
リターンrepeatImpl;
}
//テストケース
varrepeatFun =repeat(alert, 4, 3000);
repeatFun("地獄の世界");
/**
*2番目の質問
* @returns {string}
*/
関数 stringconcat(){
var result = [];
Stringconcat.merge.call(null, 結果, 引数);
return result.join(" ");
}
stringconcat.prefix = function(){
var _arguments = [],
_this = これ;
_this.merge.call(null, _arguments, argument);
戻り関数(){
var _args = _arguments.slice(0);
_this.merge.call(null, _args, argument);
return _this.apply(null, _args);
};
};
stringconcat.merge = function(array, arrayLike){
var i = 0;
for(i = 0; i
array.push(arrayLike[i]);
}
}
//テストケース
var result1 = stringconcat("a", "b"); //result1 = "a b"
var result3 = stringconcat("c", "d"); //result1 = "a b"
var stringconcatWithPrefix = stringconcat.prefix("地獄の世界");
var stringconcatWithPrefix1 = stringconcat.prefix("hellworld1");
var result2 = stringconcatWithPrefix("a", "b") //result2 = "地獄の世界 a b"
var result4 = stringconcatWithPrefix1("c", "d") //result2 = "地獄の世界 a b"
アラート(結果1);
アラート(結果2);
アラート(結果3);
アラート(結果4);