Javascript 配列で最大値/最小値を見つける方法のさまざまな方法を見ると、Array オブジェクト自体のプロトタイプを拡張していることがよくあります。だから持っている:
var a=[22,33,44,32,1];
Array.max=function(v) {
return Math.max.apply(this,v);
};
Array.max(a); // returns 44
しかし、私はしばしば以下のようにします:
Array.prototype.max=function() {
return Math.max.apply(this,this);
};
a.max(); // returns 44
これにより、Array オブジェクト自体にパラメーターを指定せずに max() を呼び出すことができます。個人的には問題は見られませんが、何かが欠けているのではないかと考え続けています。この方法には見落としている大きな問題がありますか? として使用しても安全Array.max(arrayhere)
ですか?
編集: 最初の例ではネイティブ Javascript Array オブジェクトで静的メソッドを作成し、2 番目の例では Arrays プロトタイプを拡張すると言うのは正しいですか?