2011-10-14 9 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

answerは、実際には、すべてのバックボーンモデルに影響を与えるであろう、バックボーン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); 
    } 
}); 

:何を念頭に置いていたことは、個々のモデルタイプのためsyncを上書きする場合は、(もthe Backbone docsからの正しい署名でsyncを上書きすることを確認すること)の代わりに、次のパターンを好むかもしれませんどのように動作するかは、Backbone's annotated sourceを参照してください。希望が役立ちます。

+1

これは 'Backbone.Model.prototype.sync.call(etc etc)'であってはなりませんか? (.Modelがありません) – mix3d

+0

うん、修正のおかげで – bosgood

関連する問題