Показать сообщение отдельно
  #81 (permalink)  
Старый 22.08.2011, 16:30
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Еще маленькая ошибка (сам только что у себя заметил):
var r = (new Array(5)).map(function(I, i) {
	return i;
});
alert(r.length);


Выводит "0", при нативной реализации выводит "5".

Ну и проверки на (forEach, map, filter, every, some) и (reduce, reduceRight), возможно, достаточно делать по одной на всех:
if (!('forEach' in arrayProto)) {
	arrayProto.forEach = function() {/* ..... */};
	arrayProto.map = function() {/* ..... */};
	arrayProto.filter = function() {/* ..... */};
	arrayProto.every = function() {/* ..... */};
	arrayProto.some = function() {/* ..... */};
}

if (!('reduce' in arrayProto)) {
	arrayProto.reduce = function() {/* ..... */};
	arrayProto.reduceRight = function() {/* ..... */};
}
Ответить с цитированием