Array.forEach или object doesn’t support this property or method

При переборе массива с использованием forEach в Internet Explorer вывалилась ошибка object doesn’t support this property or method

IE 7 не поддерживает конструкцию forEach для массивов [1,2,3] - то есть код вида

array_for = [1,2,3] ;
array_for.forEach = ...
//или
[1, 2, 3].forEach(print)

выдаст ошибку.
Чтобы исправить ошибку следует определить функцию
Array.prototype.forEach = function(callback, thisObj) {
for (var i = 0,len = this.length; i < len; i++)
callback.call(thisObj, this[i], i, this);
};

И вообще, в ie 8 (ie 7 и ie 6) не поддерживаются некоторые функции обхода массивов:
http://stackoverflow.com/questions/2790001/fixing-javascript-array-functions-in-internet-explorer-indexof-foreach-etc

Метки:

Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)

html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

ссылка (для отправки по почте)

Добавить комментарий