Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Array.each — выдаёт ошибку (https://javascript.ru/forum/misc/9651-array-each-%E2%80%94-vydajot-oshibku.html)

exec 29.05.2010 21:00

Array.each — выдаёт ошибку
 
Есть ф-ция Array.each

Array.prototype.each = function (handler) {
	for (var i = 0; i < this.length; i++) {
		handler.call(this[i], i, this[i]);
	}
return this;
}


Вызов функции выдаёт ошибку:

[0, 1, 2].each(function (i) {
alert(i);
}); // Uncaught exception: TypeError: Cannot convert '}
    //[0, 1, 2, 3, 4, 5, 6, 7, 8]' to object


Почему?

P.S. вариант без использования прототипов (при той же схеме реализации) ошибок не выдаёт. Мистика какая-то.

Gvozd 29.05.2010 21:19

Array.prototype.each = function (handler) {
	for (var i = 0; i < this.length; i++) {
		handler.call(this[i], i, this[i]);
	}
return this;
};//не забываем писать точку с запятой
[0, 1, 2].each(function (i) {
alert(i);
});

exec 29.05.2010 21:23

Спасибо за помощь.

Kolyaj 29.05.2010 21:45

Есть же стандартный forEach.

B~Vladi 29.05.2010 21:50

Цитата:

Сообщение от Kolyaj
Есть же стандартный forEach.

Мб for in?:-?

Kolyaj 29.05.2010 21:55

Цитата:

Сообщение от B~Vladi
Мб for in?

for-in перебирает свойства массива, а нужно перебирать элементы массива.

B~Vladi 29.05.2010 22:17

А ну да.

Gvozd 29.05.2010 22:29

Цитата:

Сообщение от Kolyaj
Есть же стандартный forEach.

что-то я затупил.
где?
покажите

B@rmaley.e><e 29.05.2010 23:01

Array.prototype.forEach

B~Vladi 29.05.2010 23:29

:blink:
Первый раз вижу.


Часовой пояс GMT +3, время: 00:04.