Я пишу библиотеку на CoffeScript (так что JS), и это тяжелая математика .. Мне действительно нужно работать с типизированными массивами (Float64Array) и всей производительностью, которую они предлагают.
Так что же такоелучший способ расширить функциональность типизированного массива ??
В настоящее время я делаю это как функции:
Vector =
create: (ag...) ->
CGE2Point.create ag...
dot: (i,j) ->
i[0]*j[0] + i[1]*j[1]
add: (i,j) ->
@.create i[0]+j[0], i[1]+j[1]
sub: (i,j) ->
@.create i[0]-j[0], i[1]-j[1]
mul: (s,v) ->
@.create s * v[0], s * v[1]
div: (s,v) ->
@.create v[0] / s, v[1] / s
Но было бы очень хорошо иметь объект Vector, который наследуется оттипизированный массивЯ знаю, что подход:
class Vector extends Float64Array
Создать класс, который не обладает всеми преимуществами типизированного массива Вопрос о массиве подклассов , читая следующие статьи Дин Эдвардс предлагает получить копию объекта из iframe, эта другая ссылка делает это другим способом Извините, Дин .Но в типизированном массиве нет всех этих методов.
Итак, как правильно (или, по крайней мере, наиболее элегантно и эффективно) подклассировать типизированные массивы ??Или я должен написать все как функции?