Я не спрашиваю, как его использовать. Я знаю, как его использовать.Как работает метод JavaScript .apply?
Но когда apply вызывает функцию, которая его вызвала, как именно она передает массив аргументов в функцию, которая не была записана для принятия массива для аргумента? Сочетает ли он свой массив аргументов с вызываемыми функциями «аргументы»?
Я рассмотрел последние спецификации ECMAscript для .apply и .call, но я ничего не видел о базовой логике.
Любое объяснение было бы добро пожаловать. Я новичок в JavaScript и хочу лучше понять, что происходит под капотом. В настоящее время я пытаюсь воссоздать некоторые из основных функций самостоятельно, и этот вопрос дает мне массу проблем.
Это под капотом. Он реализован вне JavaScript; и интерпретатор JavaScript может делать все, что захочет. Вы не можете реализовать 'apply' без' apply' (запрет 'eval' siness), так как это единственное в JavaScript, которое предоставляет эту функциональность. Вы могли бы также спросить: «Как« console.log »обращается к консоли» или «как« setTimeout »устанавливает тайм-аут»; это то, что он делает. – Amadan
Я думаю, это зависит от каждого двигателя. – DontVoteMeDown
Спасибо @ Амадан, это было именно то, что я хотел знать. Я бы сказал, что это отличается от чего-то вроде console.log. Это основано на API. Окно многих сред имеет консольное пространство имен. Применение не имеет никакого отношения к внешним средам. Хотя, может быть, я не прав. – rPat