!Array.prototype.forEach && (Array.prototype.map = Array.prototype.filter = Array.prototype.forEach = function (callback) { callback = callback || function () { }; var a = this; for (var n in a) { callback.call(this, a[n], n, a); } }); var a = [4, 5, 6]; a.map(function (e, i, arr) { arr[i] = e + '**'; }); console.log(a); var b = [4, 5, 6]; b.filter(function (e, i, arr) { arr[i] = e + '**'; }); console.log(b); var c = [4, 5, 6]; c.forEach(function (e, i, arr) { arr[i] = '**'; }); console.log(c);