gpt4 book ai didi

javascript - Backbone 的模型原型(prototype)获取 vs backbone 获取

转载 作者:行者123 更新时间:2023-11-30 09:49:43 30 4
gpt4 key购买 nike

我在查看网站的模型代码时对原型(prototype)有疑问。我知道这对 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();

我非常困惑。为什么还要使用原型(prototype)来获取某些东西?我无法理解这里的用例。

请帮忙。

最佳答案

这样做是为了在调用实际的获取方法之前进行一些预处理。换句话说,我们用我们的自定义逻辑覆盖了模型的 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() 的所有 View 中应如何进行提取相比,这是一个更好的解决方案。

当然,如果没有自定义逻辑,在您的示例中这是完全没有必要的。

关于javascript - Backbone 的模型原型(prototype)获取 vs backbone 获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37086334/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com