私はこれをもう少し明確に理解しようとしています。Array プロトタイプ内の each 関数を拡張して変更する場合、func(this[i]) を呼び出すと、Array.each に渡された関数がどのように呼び出されますか。
関数定義は function(func) であり、 func がパラメーターであるためです。
func =function(i) { alert(i) }
したがってfunc(this[i]) = { function(this[i]) { alert(this[i]) }
?
Array.prototype.each = function(func) {
for (var i=0; i<this.length; i++) {
func(this[i]);
}
};
[1,2,3].each(function(i) {
alert(i);
});