Сообщение от nerv_
|
var args = [].slice.call( arguments );
|
Не лучший вариант, как известно slice вызывает конструктор создания массива, который потом накапливает тем что есть в контексте, в вашем же случае происходит двойной вызов конструктора, один из них просто ненужный:
[] - вызывает конструктор (тот самый ненужный вызов)
.slice - ищет прототип slice в прототипах массива, то-есть глубокий поиск, начиная от экземпляра созданного массива
call(...) - снова вызывает конструктор для наполнения его тем что есть в контексте.
Пример данный
Pavel M., намного производительный, так как не требует вызова лишних методов и поиска прототипа рекурсией.
var args = Array.prototype.slice.call(arguments);