Originariamente inviato da whiles
Ho trovato la soluzione!
Ironia della sorte proprio pochi minuto dopo essermi deciso a chiedere
codice:
function Macchina() {
var _targa = 'ciao';
this.targa setter = function(value) { _targa = value; }
this.email getter = function() { return _targa; }
}
Finalmente ho ritrovato la felicità
questa non mi sembra affatto la soluzione corretta, come fai a dire che funziona? e come li richiami i metodi getter e setter?
Per quanto ne so ci sono svariati modi per creare i metodi getter e setter ma il tuo non mi pare corretto.
codice:
function Macchina(val){
this._targa = val;
}
Macchina.prototype = {
get targa(){
return this._targa;
},
set targa(val){
this._targa = val;
}
};
oppure usando i metodi definegetter e definesetter:
codice:
function Macchina(val){
var targa = val;
this.__defineGetter__("targa", function(){
return targa;
});
this.__defineSetter__("targa", function(val){
targa = val;
});
}
o ancora utilizzando direttamente il metodo defineProperty dell'oggetto Object
codice:
function Macchina(val){
var targa = val;
Object.defineProperty(this,"targa", {
get: function() {return targa;}
});
Object.defineProperty(this,"targa", {
set: function(val) {targa = val}
});
}