如何覆盖现有的 Backbone 模型方法,使其他方法保持不变

How to override existing Backbone Model method keeping other methods same

我有一个 backbone 模型,我无法访问它 edit.So 我想修改它的方法,这样其他方法的功能就不会受到影响。

ShoppingDetail = Backbone.Model.extend({
   className: 'CartID',
   fetch: function() {},
   checkForChanges: function() {},
   newCoupon: function() {},
   saveAndallow: function() {}
 });

 shoppingDetailModel = new ShoppingDetail();
 shoppingCartView = new ShoppingCartView({
   model: shoppingDetailModel
 });

所以我想覆盖 model.How 的 saveAndallow 方法,我可以这样做而不影响该模型的其他方法吗

您为什么不创建一个新模型来扩展您的 ShoppingDetail 模型?

ShoppingDetail = Backbone.Model.extend({ 
    className: 'CartID', 
    fetch: function() {},
    checkForChanges : function() {},
    newCoupon: function(){},
    saveAndallow: function(){}
});

NewShoppingDetail = ShoppingDetail.extend({
    saveAndallow: function(){};
});

shoppingDetailModel = new NewShoppingDetail();
shoppingCartView =  new ShoppingCartView({
        model : shoppingDetailModel
});

所以现在,当你调用任何方法时,它会首先检查它是否在 NewShoppingDetail 中可用,如果不可用,然后它会检查 ShoppingDetail。