Theo các nguồn tin Underscore.JS (https://github.com/jashkenas/underscore/blob/master/underscore.js):Tại sao phương thức chain() Underscore.js không phải là lười?
// Start chaining a wrapped Underscore object.
chain: function() {
this._chain = true;
return this;
},
// Extracts the result from a wrapped and chained object.
value: function() {
return this._wrapped;
}
chuỗi() và giá trị() chức năng là giấy gói chỉ đơn giản cho đối tượng dấu gạch dưới.
Vì vậy, nếu tôi đang sử dụng sau khi xây dựng:
_.chain(someCollection)
.map(function1)
.map(function2)
.map(function3)
.value()
gạch sẽ tạo ra hai bộ sưu tập trung và sẽ thực hiện ba kiểu liệt kê.
Tại sao các phương thức chain() và value() không được triển khai như được đánh giá lười biếng như LINQ thực hiện các phương thức của nó? Ví dụ: chuỗi này có thể được coi là:
_.chain(someCollection)
.map(function(x){
return function3(function2(function1(x)));
})
.value();
Có bất kỳ vấn đề nào liên quan đến JS đối với loại triển khai này không?