Se si guarda il codice sorgente, la funzione get
chiama solo a this.attributes[name]
.
http://backbonejs.org/docs/backbone.html#section-31
Il vantaggio, però, è almeno duplice:
1) un'API coerente che riduce la quantità di codice scritto
2) la possibilità di ignorare la Metodo get
e fornire un controllo di accesso più complesso
Ad esempio, esistono diversi plug-in per il backbone che sostituiscono il modo in cui i modelli funzionano per fornire funzionalità del modello annidato. è molto facile per loro per consentire di scrivere un metodo get come questo:
model.get("submodel.attr")
e che hanno analizzare fuori il attr
del sub-modello di submodel
. Senza il metodo get, sarebbe più difficile renderlo coerente con l'API.
Il vantaggio di fondo di questo è l'incapsulamento, però. Fino a quando JavaScript fornisce proprietà get/set reali che ci permettono di scrivere codice per getter e setter, saremo bloccati con metodi di lavoro come Backbone get
e set
.
fonte
2012-03-19 00:38:54
Puoi chiarire come 'user.get ('name')' vs 'user.name' riduce la quantità di codice? –
Suppongo che intenda usare 'user.get ('name')' invece di 'user.attributes ['name']' che è più lungo. Per accedere ai modelli annidati, tuttavia, userei questa sintassi: 'user.attributes.name.first' – orad