我有一個使用簡單數組(Array)和類型數組(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問題:
我怎麼可以這樣寫代碼,而無需編寫明確各類JavaScript數組的?
的TypedArrays不共享原型? _另外:我建議添加'typed-arrays'標記._ – evolutionxbox
爲什麼不使用傳遞數組的函數?例如。運行'Math.max.apply(null,yourArrayOfTypeX);'工作得很好。 – schroffl
製作一個函數,它接收你想要添加的方法和它的名字作爲一個字符串,並且使用這個名字迭代'prototype'對象來爲每個原型分配方法。 – 2017-02-10 17:40:24