Ho giocato con la creazione di oggetti delineata da Douglas Crockford nel suo nuovo discorso " Le parti migliori "
function constructor(spec){
var that = otherConstructor(spec),
member,
method = function(){
// spec, member, method all available without using this
};
that.method = method;
return that
}
Nel codice su cui sto lavorando ho un valore membro che mi piacerebbe impostare nel mio oggetto e il mio primo istinto era quello di rendere pubblico quel membro e semplicemente di cambiare quel valore. Quando ho chiesto a Crockford il modo migliore per farlo (getter / setter vs that.property) ha risposto:
I covered that. You don't need public properties at all. Design at a higher level.
Quindi mi chiedo, quale sarebbe il design di livello superiore?
Se questa è una versione semplificata del mio oggetto
animator = function(){
var that = {},
playbackSpeed;
return that;
}
e il mio obiettivo è quello di mutare playbackSpeed. La mia inclinazione è quella di aggiungere un metodo pubblico setPlaybackSpeed. È questo che intende?