我有一个使用简单数组(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