Il y a quelques façons d'obtenir classe comme le comportement en javascript, semblent le plus courant d'être prototype basé comme ceci:Quel style utilisez-vous pour créer une "classe"?
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 ...); }
et les approches de fermeture similaire à
function Vector(x, y, z) {
this.length = function() { return Math.sqrt(x * x + ...); }
}
Pour diverses raisons ce dernier est plus rapide, mais j'ai vu (et j'écris souvent) la version prototype et j'étais curieux de savoir ce que les autres faisaient.
Mes tests ont montré que l'approche basée sur la fermeture est plus lente. Vous devez instancier une fermeture séparée pour chaque objet. L'approche prototype partage les méthodes avec toutes les instances. –