Я создаю класс Vector, который может в основном содержать три числовых значения. Однако на таком векторе может быть выполнено множество операций - например, получение величины, добавление или вычитание другого вектора и т.д.
Мне было интересно, должны ли эти функции быть закодированы как прототип функции класса Vector или что я должен определить их в конструкторе.
Итак, какой из этих двух методов предпочтительнее?
function Vector3D(x, y, z) {
this.x = x;
this.y = y
this.z = z;
}
Vector3D.prototype.magnitude = function() {
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
};
или
function Vector3D(x, y, z) {
this.x = x;
this.y = y;
this.z = z;
this.magnitude = function() {
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
};
}