ガレコレ
Garage Collection
 
2017年6月5日(月)
[JavaScript] .repeat() #HTML5&CSS3&JavaScript

stringObj.repeat(count);

 文字列を繰り返すメソッドが当然あって然りなのだが、JavaScriptには標準定義されてこなかった。しかしながら、最近のデバイスでは有効のようである。

 iPhone(iOS10.3.2+Safari)では、有効であった。

 Windowsでは、Windows10+Edgeのみ有効であり、Windows10+IE11では利用できない。Windows8.1以前でも利用できない。まあ、旧Windowsのせいで、事実上使えないということである。

-- 参考 --
https://msdn.microsoft.com/ja-jp/library/dn858244(v=vs.94).aspx
--


 さて、従来、独自メソッドの定義をプログラマー自身で作成してきた。.repeat()についてもそうである。

 独自メソッドの定義は、独自関数と要領は同じである。

--
String.prototype.repeat = function($num){}

※関数を分離して記述する方法もあるが、省略。
--


 下記に、プログラム例を示した。テスト的に、既存のメソッドが上書きされているか"repreat_"を付けて区別してみた。

 なお、$strと$numが独自メソッドと独自関数に混在しているが、スコープがそれぞれに限定されているので、お互いに影響ない。<input>のnameをstrとnumにしても問題ない。独自メソッド.repeat()と独自関数repeat()も混在できる。まあ、ややこしくなるので、通常はやらないが、今回はテスト確認のため、そうしてみた。

--
<!DOCTYPE html>

<html lang="ja">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width">

<script>

//
// 独自メソッドの定義
//

String.prototype.repeat = function($num){
 $str = 'repeat_';
 $txt = this.toString();
 while (--$num >= 0) {
  $str += $txt;
 }
 return $str;
}

//
// 独自関数:文字列の出力
//

function repeat(){
 $str = document.forms[0].str.value;
 $num = document.forms[0].num.value;
 document.getElementById("id_repeat").innerHTML = $str.repeat($num);
}

</script>

<title>[JavaScript] stringObj.repeat(count)</title>

</head>



<body>

<p>[JavaScript]<br>
stringObj.repeat(count)</p>

<hr>

<form>

<p>String:<br>
<input type="text" name="str"></p>

<p>Count:<br>
<input type="number" name="num"></p>

<p><input type="button" value="repeat" onclick="repeat();"></p>

<p id="id_repeat"></p>

</form>

<hr><hr>

<p>presented by Garage Collection</p>

</body>

</html>
--

http://neconote.jp/prg/repeat.html
 
お問い合わせ
by Network Communication Note