Javascript 覆盖Backbone.sync,但保存其以前的功能

Javascript 覆盖Backbone.sync,但保存其以前的功能,javascript,backbone.js,Javascript,Backbone.js,我希望覆盖Backbone.sync,但在添加内容后也会运行原始的Backbone.sync功能。我想这有点像在Java中调用超类。除了复制前面的所有代码,还有其他方法吗?在JavaScript中,您可以在变量中存储任何属性或方法。下面的示例将Backbone.sync分配给另一个变量,然后在函数结束时使用传递给新Backbone.sync函数的所有变量调用它 var originalSync = Backbone.sync; Backbone.sync = function() { /

我希望覆盖Backbone.sync,但在添加内容后也会运行原始的Backbone.sync功能。我想这有点像在Java中调用超类。除了复制前面的所有代码,还有其他方法吗?

在JavaScript中,您可以在变量中存储任何属性或方法。下面的示例将Backbone.sync分配给另一个变量,然后在函数结束时使用传递给新Backbone.sync函数的所有变量调用它

var originalSync = Backbone.sync;
Backbone.sync = function() {
    // Your code here.
    return originalSync.apply(Backbone, arguments);
};
上面Brian Nickel提供的方法实际上将覆盖主干网的同步方法,这将影响所有主干网模型。如果您想到的是覆盖单个型号的
sync
,您可能更喜欢以下模式(同时确保使用来自的正确签名覆盖
sync
):


有关如何工作的更完整信息,请参考其本身。希望有帮助。

这不应该是主干网、模型、原型、同步、呼叫(等)?(缺少.Model)
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);
    }
});