Есть несколько способов получить классоподобное поведение в javascript, наиболее распространенным является прототип, основанный на этом:
function Vector(x, y, x) {
this.x = x;
this.y = y;
this.z = z;
return this;
}
Vector.prototype.length = function () { return Math.sqrt(this.x * this.x ... ); }
и подходы, основанные на замыкании, аналогичные
function Vector(x, y, z) {
this.length = function() { return Math.sqrt(x * x + ...); }
}
По разным причинам последний работает быстрее, но я видел (и часто пишу) версию прототипа, и мне было любопытно, что делают другие люди.