Показать сообщение отдельно
  #4 (permalink)  
Старый 05.01.2015, 15:17
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от nerv_
вторая функция разве не заменяется на это
Array.prototype.slice.call(arguments);
?
Судя по руководству Optimization killers, безопасно передать arguments можно только в apply.
Цитата:
What is safe arguments usage?

Only use

• arguments.length
• arguments[i] where i is always a valid integer index into the arguments, and can not be out of bound
• Never use arguments directly without .length or [i] (STRICTLY x.apply(y, arguments) is ok, nothing else is, e.g. .slice. Function#apply is special)

And note that the FUD about mentioning arguments causing an allocation of the arguments object is untrue when you use the it in the mentioned safe ways.
ну и на тестах это подтверждается, вариант с slice.call самый медленный http://jsperf.com/leaking-arguments/3

Последний раз редактировалось Octane, 05.01.2015 в 15:28.
Ответить с цитированием