Backbone 的模型原型获取与 backbone 获取
Backbone's model prototype fetch vs backbone fetch
我正在查看一个网站的模型代码,我对原型有疑问。我知道这对 Javascript.
中的继承很有用
在这个例子中...
define([], function () {
"use strict";
/**
* Data Model
*
* @type {Backbone.Model}
*/
var DataModel = Backbone.Model.extend({
defaults : {
},
urlRoot : '/api/..../../..',
fetch : function() {
Backbone.Model.prototype.fetch.apply(this, arguments);
}
});
return Datamodel;
});
为什么我们需要做 Backbone.Model.prototype.fetch.apply(this, arguments);
而不是普通的 Model.fetch();
我非常困惑。为什么还要使用原型来获取某些东西?我无法理解这里的用例。
请帮忙
这样做是为了在调用实际的获取方法之前进行一些预处理。换句话说,我们用我们的自定义逻辑覆盖了模型 fetch
方法,如果需要,它最终会调用原始的 fetch
方法。
例如:
fetch : function(options) {
if(options.someFlag){
var dfd = jQuery.Deferred();
// fetch the data from localStorage
// dfd.resolve(resultingDataFromLocalStorage);
return dfd.promise();
}
return Backbone.Model.prototype.fetch.apply(this, arguments);
}
与让代码决定在所有调用 model.fetch()
.
的视图中应如何进行提取相比,这是一个更好的解决方案
当然,如果没有自定义逻辑,在您的示例中这是完全没有必要的。
我正在查看一个网站的模型代码,我对原型有疑问。我知道这对 Javascript.
中的继承很有用在这个例子中...
define([], function () {
"use strict";
/**
* Data Model
*
* @type {Backbone.Model}
*/
var DataModel = Backbone.Model.extend({
defaults : {
},
urlRoot : '/api/..../../..',
fetch : function() {
Backbone.Model.prototype.fetch.apply(this, arguments);
}
});
return Datamodel;
});
为什么我们需要做 Backbone.Model.prototype.fetch.apply(this, arguments);
而不是普通的 Model.fetch();
我非常困惑。为什么还要使用原型来获取某些东西?我无法理解这里的用例。
请帮忙
这样做是为了在调用实际的获取方法之前进行一些预处理。换句话说,我们用我们的自定义逻辑覆盖了模型 fetch
方法,如果需要,它最终会调用原始的 fetch
方法。
例如:
fetch : function(options) {
if(options.someFlag){
var dfd = jQuery.Deferred();
// fetch the data from localStorage
// dfd.resolve(resultingDataFromLocalStorage);
return dfd.promise();
}
return Backbone.Model.prototype.fetch.apply(this, arguments);
}
与让代码决定在所有调用 model.fetch()
.
当然,如果没有自定义逻辑,在您的示例中这是完全没有必要的。