backbone js Unterschied zwischen Gettern und direktem Zugriff auf Modellattribute

8

Was ist der Vorteil / Grund für backbone-js, die Syntax

zu verwenden? %Vor%

und nicht

%Vor%

Ich fange gerade an, das Rückgrat zu benutzen, und ich versuche immer, direkt auf die Attribute zuzugreifen

    
Pete_ch 19.03.2012, 00:20
quelle

2 Antworten

12

Wenn Sie sich den Quelltext ansehen, ruft die Funktion get nur this.attributes[name] auf.

Ссылка

Der Vorteil ist jedoch mindestens zweifach:

1) eine konsistente API, die die Menge an Code reduziert, die Sie schreiben

2) die Möglichkeit, die Methode get zu überschreiben und eine komplexere Zugriffssteuerung bereitzustellen

Beispielsweise gibt es mehrere Plugins für Backbone, die die Funktionsweise von Modellen überschreiben, um geschachtelte Modellfunktionen bereitzustellen. Es ist sehr einfach für sie, dass Sie eine get Methode wie folgt schreiben können:

model.get("submodel.attr")

und parse das attr des submodel Submodells aus. Ohne die get-Methode wäre es schwieriger, dies mit der API konsistent zu machen.

Der grundlegende Nutzen davon ist jedoch die Kapselung. Bis JavaScript echte Get / Set-Eigenschaften liefert, mit denen wir Code für Getter und Setter schreiben können, werden wir mit Methoden wie Backbones get und set fertig sein.

    
Derick Bailey 19.03.2012, 00:38
quelle
2

Nun, für den Anfang ist model.attribute absolut NICHT korrekt. model.set() ist erforderlich, damit change -Ereignisse ausgelöst werden. Sie werden dies sehr wahrscheinlich vergessen, wenn Sie sich angewöhnen, model.attributes[attribute] anstelle von model.get(attribute)

zu verwenden     
Scott Evernden 19.03.2012 05:00
quelle

Tags und Links