2011-10-14 34 views

回答

15

在JavaScript中,您可以將任何屬性或方法存儲在變量中。以下示例將Backbone.sync分配給另一個變量,然後在函數結束時將所有傳遞給您的新Backbone.sync函數的變量調用它。

var originalSync = Backbone.sync; 
Backbone.sync = function() { 
    // Your code here. 
    return originalSync.apply(Backbone, arguments); 
}; 
+0

完美!謝謝。 – kreek

6

由Brian鎳提供上述將實際覆蓋骨幹answersync方法,這將影響到所有的骨幹機型。如果你腦子裏想的是重寫sync爲個別型號,您可以改爲更喜歡下面的模式(也確保從the Backbone docs正確的簽名重寫sync):

var YourModel = Backbone.Model.extend({ 
    sync: function(method, model, options) { 
     // do your custom work here 
     return Backbone.Model.prototype.sync.call(this, method, model, options); 
    } 
}); 

有關更完整的信息這是如何工作的,請參閱Backbone's annotated source本身。希望有所幫助。

+1

不應該是'Backbone.Model.prototype.sync.call(etc etc)'? (.Model缺失) – mix3d

+0

是的,感謝您的糾正 – bosgood