私は単純な配列(配列)と型付き配列(TypedArray)を使用するアプリケーションを持っています。すべてのJavascript配列を一度に拡張する
(min、max、sum、...)のような配列型に必要な拡張をいくつか開発しました。
ここでは難しい部分があります:javascriptのすべての配列に対して作成された関数を定義するにはどうすればいいですか?
これらの間にいくつかの継承階層があった場合、この問題はもっと簡単になります。しかし、これまでのところ、私はそれ以上の親クラスを見つけませんでした。今私はこれをやっているために
:
// MIN FUNCTION
Array .prototype.min =
Int8Array .prototype.min =
Int16Array .prototype.min =
Int32Array .prototype.min =
Uint8Array .prototype.min =
Uint16Array .prototype.min =
Uint32Array .prototype.min =
Uint8ClampedArray .prototype.min =
Float32Array .prototype.min =
Float64Array .prototype.min = function() {
// my code;
}
// MAX FUNCTION
Array .prototype.max =
Int8Array .prototype.max =
Int16Array .prototype.max =
Int32Array .prototype.max =
Uint8Array .prototype.max =
Uint16Array .prototype.max =
Uint32Array .prototype.max =
Uint8ClampedArray .prototype.max =
Float32Array .prototype.max =
Float64Array .prototype.max = function() {
// my code;
}
// GO ON...
これは私が私の目をリッピングしたいと見えるのでものすごい醜いです。
どうすれば改善できますか?これらのすべてのタイプを接続するための何かが使用されていますか?
EDITED QUESTION:
はどのように私は明示的にjavascript配列のすべてのタイプを記述することなく、このコードを書くことができますか?
TypedArraysはプロトタイプを共有しませんか? _Also: 'typed-array'タグを追加することをお勧めします。 – evolutionxbox
配列を渡す関数を使用してみませんか?例えば。 'Math.max.apply(null、yourArrayOfTypeX);'を実行してもうまく動作します。 – schroffl
追加するメソッドとその名前を文字列として受け取る関数を作成し、その名前を使って各プロトタイプにメソッドを割り当てる 'prototype'オブジェクトを反復します。 –