修正

今日のmapだけど,こっちの方がイケてる書き方な気がするので修正.

// old
Array.prototype.map = function (fun) {
    return function (ar, pThis) {
        for (var i = 0; i < pThis.length; i++) {
            ar.push (fun (pThis[i]));
        }
        return ar;
    } (new Array (), this);
};

// new
Array.prototype.map = function (fun) {
    return (function (ar) {
        for (var i = 0; i < this.length; i++) {
            ar.push (fun (this[i]));
        }
        return ar;
    }).call (this, new Array ());
};

そうだ,アホなことしないでもcallを使えばいいじゃないか!