With that explanation out of the way, we can finally get down to the workings of Backbone's subclassing system, which revolves around Backbone's extend method. To use extend, you simply call it from the class that your new subclass will be based on, and extend will return the new subclass. This new subclass will have its __proto__
property set to the prototype
property of its parent class, allowing objects created with the new subclass to access all the properties and methods of the parent class. Take an example of the following code snippet:
var Book = Backbone.Model.extend(); // Book.prototype.__proto__ == Backbone.Model.prototype; var book = new Book(); book.destroy();
In the preceding example, the last line works because JavaScript will look up the __proto__
chain, find the Model
method destroy
, and use it. In other words, all the functionality of our original class has been inherited by our new class.
But of course, extend
wouldn't be exciting if all it can do...