Secondo fonti Underscore.JS (https://github.com/jashkenas/underscore/blob/master/underscore.js):Perché il metodo Underscore.js chain() non è pigro?
// 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;
}
catena() e value() funzioni sono solo semplici involucri per oggetto sottolineatura.
Quindi, se sto usando seguente costruzione:
_.chain(someCollection)
.map(function1)
.map(function2)
.map(function3)
.value()
sottolineatura creerà due collezioni intermedi ed effettuerà tre enumerazioni.
Perché i metodi chain() e value() non vengono implementati come valutati pigri come se LINQ implementasse i suoi metodi? Ad esempio, questa catena può essere trattata come:
_.chain(someCollection)
.map(function(x){
return function3(function2(function1(x)));
})
.value();
Esiste qualche problema relativo a JS per questo tipo di implementazione?