options
, thông thường, là đối tượng javascript của cặp khóa/giá trị cung cấp dữ liệu/ngữ cảnh/đối số/cấu hình cho một cuộc gọi phương thức. Hãy nghĩ về nó giống như các đối số được đặt tên, trái ngược với các đối số được đặt hàng.
Ví dụ:
var makePerson = function(name, options) {
var person = {};
person.name = name;
person.age = options.age;
return person;
};
var me = makePerson('Alex', {age:30}); // In 3 days... scary :(
Làm thế nào các chức năng được gọi là sử dụng đối tượng này, tùy thuộc vào chức năng đó.
Tài liệu về xương sống cho Collection.initialize()
dường như không liệt kê những phím nào trên đối tượng tùy chọn được sử dụng hoặc được mong đợi, điều này thật không may. Vì vậy mà không cần nhìn vào nguồn, không có cách nào để nói. Nhưng ví dụ của bạn dường như chỉ ra một khóa view
được mong đợi. Vì vậy, bạn có thể gọi nó như thế này:
var friendsCollection = new Friends(userModels, {view: someBackboneView});
Đây chỉ đơn giản là một quy ước nhiều thư viện có xu hướng sử dụng và không có gì đặc biệt về nó. Nhưng thường có nhiều phím trong một đối tượng được truyền đến một cuộc gọi hàm tốt hơn một hàm funciton mà bạn gọi với nhiều đối số, bởi vì mỗi giá trị có một nhãn làm cho nó rõ ràng giá trị của mỗi giá trị.
Nhìn một chút nữa, bây giờ ở đây: http://documentcloud.github.com/backbone/docs/backbone.html#section-53
Dường như Collection.initialize()
chỉ chấp nhận một chìa khóa duy nhất trong tùy chọn của nó: comparator
. Ở đây bạn có thể định nghĩa một hàm sử dụng để sắp xếp các mô hình trong bộ sưu tập: http://documentcloud.github.com/backbone/#Collection-comparator
làm việc đó vào ví dụ của bạn, bạn sẽ gọi đó là như thế này:
var friendsCollection = new Friends(userModels, {
view: someBackboneView,
comparator: function(friend) {
return friend.get('age');
}
});
Tôi thích câu trả lời của bạn. Tôi chắc chắn đã học được điều gì đó từ nó như vậy +1, nhưng tôi yêu cầu nó trong bối cảnh Backbone.js.Nó không phải là [tùy chọn] mà tôi yêu cầu nhưng là một "tùy chọn" được mã hóa cứng từ việc sử dụng Backbone.js. Tuy nhiên, câu trả lời tuyệt vời trong một bối cảnh khác nhau :) –
Chỉnh sửa với nhiều hơn về cách xương sống cụ thể xử lý các tùy chọn trong phương pháp này. –
Điều đó có ý nghĩa. Cảm ơn thời gian :) –