Большинство библиотек JavaScript, которые пытаются достичь высокопроизводительной математики (например, для графического или физического моделирования), используют подобные приемы, чтобы убедиться, что компилятор знает, что переменные имеют числовой тип:
function Vector3( x, y, z ) {
this.x = x || 0;
this.y = y || 0;
this.z = z || 0;
}
function Vector3( x, y, z ) {
this.x = x + 0.0;
this.y = y + 0.0;
this.z = z + 0.0;
}
Имеет ли смысл продвигать это на следующем уровне и обеспечивать тип не только примитивов, но и классов? Например, что-то вроде
function Sphere( pos, R ) {
let junk = 0.0 + pos.x + pos.y + pos.z;
this.pos = pos;
this.R = R + 0.0;
}
function Sphere( pos, R ) {
if ( pos instanceof Vector3 ){
this.pos = pos;
}else{
this.pos = Vector3(pos);
}
this.R = R + 0.0;
}
Вопросы:
- Имеет ли это смысл с точки зрения предварительного исполнения?
- Разве
instanceof
не слишком медленный? - Можно ли сделать больше ники, с меньшим количеством шаблонов?
на TypeScript и т. Д.
Я знаю, что есть такие вещи, как TypeScript , но они требуют установки определенной среды, и, насколько я знаю, они не поддерживаются напрямую веб-браузерами, а типанотация не помогает оптимизировать js-engine в браузере. (Может я не прав - буду рад если вы меня поправите)