Tôi đã nhìn vào nồi hơi Backbone-requireJS trong GitHub, tôi thấy hai loại triển khai khác nhau.Có lý do chính đáng nào để bao bọc thêm một hàm được gọi hàm immedeately xung quanh định nghĩa mô-đun requireJS không?
https://github.com/david0178418/BackboneJS-AMD-Boilerplate/blob/master/src/js/views/viewStub.js có những điều sau đây là viewStub:
function() {
"use strict";
define([
'jqueryLoader',
'underscore',
'backbone',
],
function($, _, Backbone) {
return Backbone.View.extend({
template : _.template(/*loaded template*/),
initialize : function() {
this.render();
},
render : function() {
$(this.el).append(this.template(/*model/collection*/));
return this;
}
});
}
);
})();
Trong khi xem sơ khai từ bản mẫu khác https://github.com/jcreamer898/RequireJS-Backbone-Starter/blob/master/js/views/view.js có sau đây:
define([
'jquery',
'backbone',
'underscore',
'models/model',
'text!templates/main.html'],
function($, Backbone, _, model, template){
var View = Backbone.View.extend({
el: '#main',
initialize: function(){
this.model = new model({
message: 'Hello World'
});
this.template = _.template(template, { model: this.model.toJSON() });
},
render: function(){
$(this.el).append(this.template);
}
});
return new View();
});
Câu hỏi của tôi ở đây là: Tại sao có một chức năng tự thực hiện xung quanh toàn bộ mô-đun RequireJS trong ví dụ đầu tiên?
@missingno cảm ơn bạn đã chỉnh sửa! – Karthik