Tôi là nhà phát triển cấp trung bình javascript đang cố gắng hiểu cách thư viện xương sống hoạt động nội bộ và sẽ đánh giá cao nếu ai đó giúp tôi giải quyết một số thách thức.giải thích đối tượng xương sống và mô hình tạo lớp
vì vậy đây là những gì tôi hiểu
định nghĩa cơ bản của hàm xây dựng trong Backbone được
Backbone.Model = function(attributes, options) { }
sau đó họ sử dụng mục đích chung mở rộng phương pháp để thêm các tính năng phổ biến trong các mẫu nhà xây dựng của chúng tôi.
_.extend(Backbone.Model.prototype, Backbone.Events, {...})
nay đến phần này tôi biết chính xác những gì đang xảy ra và sẽ được hạnh phúc để nhanh chóng đối tượng mới dù đoạn mã sau
var user = new Backbone.Model()
và đây là phần tôi đang tìm kiếm thử thách
ofcourse nó không phải là cách chúng tôi instantiate một đối tượng trong Backbone nhưng chúng tôi sử dụng mở rộng phương pháp
var Users = Backbone.Model.extend({});
var user = new Users()
và trong mã xương sống
Backbone.Model.extend = extend;
var extend = function(protoProps, classProps) {
var child = inherits(this, protoProps, classProps);
child.extend = this.extend;
return child;
};
var inherits = function(parent, protoProps, staticProps) {
var child;
if (protoProps && protoProps.hasOwnProperty('constructor')) {
child = protoProps.constructor;
} else {
child = function() {
return parent.apply(this, arguments);
};
}
_.extend(child, parent);
ctor.prototype = parent.prototype;
child.prototype = new ctor();
if (protoProps) _.extend(child.prototype, protoProps);
if (staticProps) _.extend(child, staticProps);
child.prototype.constructor = child;
child.__super__ = parent.prototype;
return child;
};
xin vui lòng giải thích cho tôi những gì đang xảy ra bên trong thừa kế chức năng và những gì là lợi ích của mở rộng cách tiếp cận phương pháp
Backbone có nguồn với ý kiến: http://documentcloud.github.com/backbone/docs/backbone.html Tìm kiếm phương pháp kế thừa. Họ có một mô tả tốt đẹp. – jForrest