CHAPTER FIVE
Hacking JavaScript Constructors for Model Harmony
JavaScript MVC—or MVW (Model, View, “Whatever”)—frameworks come in many flavors, shapes, and sizes. But by virtue of their namesake, they all provide developers with a fundamental component: models, which “model” the data associated with the application. In client-side web apps, they typically represent a database-backed object.
Last year at Disqus, we rewrote our embedded client-side application in Backbone, a minimal MVC framework. Backbone is often criticized for having an unsophisticated “view” layer, but one thing it does particularly well is managing models.
Defining a new model in Backbone looks like this:
varUser=Backbone.Model.extend({defaults:{username:'',firstName:'',lastName:''},idAttribute:'username',fullName:function(){returnthis.get('firstName')+this.get('lastName');}});
Here’s some sample code that initializes a new model, and demonstrates how that model instance might be used in an application:
varuser=newUser({username:'john_doe',firstName:'John',lastName:'Doe'});user.fullName();// John Doeuser.set('firstName','Bill');user.save();// PUTs changes to server endpoint
These are simple examples, but client-side models can be very powerful, and they are typically—ahem—the backbone of any nontrivial MVC app.
Additionally, Backbone provides what are called “collection” classes, which help developers easily manipulate common sets of model instances. You can ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access