i metodi asseganti via prototype non possono accedere a metodi e attributi privati! cioe' se faccio:
Codice PHP:
function C(){
var locale = "locale";
}
C.prototype.readLocal = function(){
alert(locale)
}
var o = new C();
o.readLocal() // locale is not defined
mi becco un errore. Allora ho pensato di risolvere cosi:
Codice PHP:
function C(){}
C.prototype.readLocal = (function(){
var locale = "locale";
return function(){
alert(locale)
}
})();
var o = new C;
o.readLocal();
ho l'assegnazione in core del metodo (a tutti gli oggetti istanziati con C) e allo stesso tempo ho accesso a varibili private. Chiaramente, non essendo queste variabili private create a instatiation time, non possono essere "personalizzate per ogni istanza" pero' ho comunque il vantaggio di prototype.
sounds good?