Como escrevo classes de Javascript

Existem várias maneiras de escrever classes javascript e não estou aqui para fornecer uma descrição técnica e como um método é melhor do que outros. Estou apenas compartilhando como eu os escrevo e por que eles parecem esteticamente mais agradáveis ​​para mim.

var Klass = function() {
};

(function() {

this.method = function method() {
};

}).call(Klass.prototype);

Acho que comecei a fazer isso observando como o código-fonte do ACE foi escrito. Eu acho que. Eu gosto de não ter que ficar digitando o Klass.prototype.tempo todo e também não preciso dizer ‘Doh!’ cada vez que perco uma vírgula no Klass.prototype = {};método.

Embora a desvantagem desse método seja que você não pode usar a sintaxe getter / setter como:

Klass.prototype = {
get value(){
return this._value;
},
set value(val){
this._value = val;
}
};

mas, em vez disso, deve usar este método detalhado:

this.__defineGetter__("value", function(){
return value;
});

this.__defineSetter__("value", function(val){
value = val;
});