четверг, 18 ноября 2010 г.

Как работает Array.prototype.slice.call

Для того, чтобы из аргументов JavaScript функции "отрезать" первые Х значений, используется метод slice:

Array.prototype.slice.call(arguments, X);

Например такая функция вернет "3,4":

(function(){
  var args = Array.prototype.slice.call(arguments, 2);
  alert(args); // Returns: 3,4
})(1, 2, 3, 4);


Используется вызов через Array.prototype.call(array, params)  потому, что arguments - псевдо-массив и не содержит методов прототипа массива. С помощью call мы явно вызываем нужный метод из прототипа Array с контекстом arguments.

Таким образом, такой подход используется когда нужно срезать входящие параметры функции JavaScript.

2 комментария:

  1. Отсюда понятно что он делает, но не объясняется как. Для любопытствующих ссылка: http://stackoverflow.com/questions/7056925/how-does-array-prototype-slice-call-work

    ОтветитьУдалить