sách gpt4 ai đã đi

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

In lại 作者:行者123 更新时间:2023-11-30 09:49:43 30 4
mua khóa gpt4 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)来获取某些东西?我无法理解这里的用例。

请帮忙。

1 Câu trả lời

这样做是为了在调用实际的获取方法之前进行一些预处理。换句话说,我们用我们的自定义逻辑覆盖了模型的 fetch 方法,如果需要,它最终会调用原始的 fetch phương pháp.

Ví dụ:

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
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com