Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Super in Backbone

When I override the clone() method of a Backbone.Model, is there a way to call this overriden method from my implantation? Something like this:

var MyModel = Backbone.Model.extend({     clone: function(){         super.clone();//calling the original clone method     } }) 
like image 855
Andreas Köberle Avatar asked Dec 21 '11 21:12

Andreas Köberle


1 Answers

You'll want to use:

Backbone.Model.prototype.clone.call(this); 

This will call the original clone() method from Backbone.Model with the context of this(The current model).

From Backbone docs:

Brief aside on super: JavaScript does not provide a simple way to call super — the function of the same name defined higher on the prototype chain. If you override a core function like set, or save, and you want to invoke the parent object's implementation, you'll have to explicitly call it.

var Note = Backbone.Model.extend({  set: function(attributes, options) {  Backbone.Model.prototype.set.apply(this, arguments);  ...  }     }); 
like image 171
Bobby Avatar answered Sep 18 '22 22:09

Bobby