Keep on moving

あんまりまとまってないことを書きますよ

配列の初期化(2)

javascriptでは、配列のクリアを行うメソッドはない。
prototypejsでは以下のように実装されている。

Array.prototype.clear=function(){
  this.length=0;
  return this;
};

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

によると、

lengthの値を小さくした場合は、その値と同じか、それよりも大きい添字をプロパティとして持つデータは削除される。

そのため、length=0としているのだろう。
thisを返しているのはカスケードのためなんだろうと思う。
こうすることで、下のようにメソッドチェーンが使える。

var arr=['a','b','c'];

// 配列をクリアして、新しく値を追加
arrr.clear().push('d');