<script>
var array = [1,2];
Array.prototype.each = function(iterator){
var index = 0;
this._each(function(value){
iterator(value, index++);
});
}
Array.prototype._each = function(iterator){
for(var i=0; i<this.length; i++){
iterator(this[i]);
}
}
Array.prototype.collect = function(iterator){
var results = [];
this.each(function(value, index){
results.push(iterator(value, index));
});
return results;
}
var iterator = function(v){
return v + 11;
}
rs = array.collect(iterator);
alert(rs)
</script>
<script>
this._each(
(function(value){
function(value, index){
results.push(
(function(v){
return v + 11;
})(value, index)
);
}
})(value, index++)
)
</script>