Skip to content

Instantly share code, notes, and snippets.

@i-Hun
Last active December 19, 2015 21:39
Show Gist options
  • Select an option

  • Save i-Hun/6022017 to your computer and use it in GitHub Desktop.

Select an option

Save i-Hun/6022017 to your computer and use it in GitHub Desktop.
JS: prototype and arguments
# Prototype
http://habrahabr.ru/post/117868/
arguments -- переменная, доступная внутри функции и содержащая аргументы и ссылку на саму функцию.
Несмотря на доступ по индексу и наличие свойства length, arguments не является массивом, т.е не принадлежит типу Array.
Поэтому для arguments нельзя напрямую вызвать методы этого класса:
arguments.pop() // ошибка !
Можно, однако, вызвать методы Array через apply/call:
var args = Array.prototype.slice.call(arguments) //Мы вызываем метод slice прототипа Array от лица arguments.
.slice - ищет прототип slice в прототипах массива, то-есть глубокий поиск, начиная от экземпляра созданного массива
call(...) - вызывает конструктор для наполнения его тем что есть в контексте.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment