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;
});