Автор оригинала: FreeCodeCamp Community Member.
Ashay Mandwarya ???
В этой статье мы поговорим о применении, вызове и методах связывания цепи функциональной прототипы. Они являются одними из самых важных и часто используемых концепций в JavaScript и очень тесно связаны с это ключевое слово.
Итак, чтобы получить понимание информации в этой статье, сначала вы должны быть знакомы с концепцией и использованием это ключевое слово. Если вы уже знакомы с этим, вы можете продолжить – иначе вы можете отослать эту статью здесь а потом вернуться сюда.
Узнать о Применить | Call | Bind Мы должны знать о функциях в JavaScript тоже, предполагая, что вы знакомы с это Отказ
Функции
Конструктор функции создает новый объект функции. Вызов конструктора непосредственно может динамически создавать функции, которые могут быть выполнены в глобальном объеме.
В качестве функций являются объекты в JavaScript, их вызов контролируется Подать заявку, звоните и свяжите методы.
Чтобы проверить, является ли функция функционального объекта, мы можем использовать код в следующем фрагменте, который возвращает true.
Ниже приведены методы в цепочке прототипа функции:
- Функция .prototype.apply ()
- Функция. Прототип .bind ()
- Функция .prototype.Call ()
- Функция. Прототип .isisgenerator ()
- Функция .prototype.tosource ()
- Объект. Прототип
- Функция. Прототип.
- Object.Prototype.tostring.
Мы обеспокоены первыми тремя, поэтому давайте начнем.
Применять ?
Ассортиментные объекты могут ссылаться на объект odelist или аргументы внутри функции.
Это означает, что мы можем назвать любую функцию и явно указать, что это следует ссылку в вызывающей функции.
Синтаксис
Возвращаться
Это возвращает результат функции, которая вызывается это.
Описание
Применить Метод используется для разрешения функции/объекта, принадлежащего объекту X, которое называется и присвоен объекту y.
Примеры
1.
Как видно в данном фрагменте, мы видим, что когда мы нажимаем массив внутри другого, весь массив рассматривается как один элемент и нажал внутри переменной массива.
Но что, если мы хотим, чтобы элементы были толкаться индивидуально в качестве массива? Конечно, есть буквально n количество способов сделать это, но, как мы учимся, давайте использовать его:
В данном примере мы можем увидеть использование Применить в присоединении к двум данным массивам. Аргументы Array – это массив элементов и это Аргумент указывает на переменную массива. Элементы массива элементов нажаты на объект ( Array ), к которому это это указывая Отказ Мы получаем результат, поскольку отдельные элементы второго массива нажали на массив, к которому это указана.
2.
Максимальная функция в JS используется для поиска элемента с максимальным значением из данного пула элементов. Но, как мы можем видеть из фрагмента, если значения в форме массива, мы получаем результат как NAN. Наверняка мы снова говорим о JavaScript, есть n количество способов, которыми это делают, но давайте применяем применение.
Теперь, когда мы используем применить и использовать функцию math.max (), мы получаем результат. Как известно, применение примет все значения внутри массива в качестве индивидуальных аргументов, а затем на них будет применяться функция MAX. Это даст нам максимальное значение в массиве.
Интересная вещь, чтобы указать вот то, что на месте это Мы использовали нуль. Поскольку предусмотренный аргумент является массивом номера, даже если это введен, он укажет тот же массив, и мы получим тот же результат. Поэтому в таких случаях мы можем использовать NULL вместо это. Это показывает нам, что это Аргумент в функции Apply является необязательным аргументом.
Вызов
Это означает, что мы можем назвать любую функцию, явно указав ссылку на то, что это следует ссылку в вызывающей функции.
Это очень похоже на Применить, Единственная разница в том, что Применить Принимает аргументы в форме массива или массивных объектов, и здесь аргументы предоставляются индивидуально.
Синтаксис
Возвращаться
Результат вызова функции с указанным это Значение и аргументы.
Описание
Позвоните Метод используется для разрешения функции/объекта, принадлежащего объекту X, которое называется и присвоен объекту y.
Примеры
1.
Это пример цепочки конструктора. Как мы видим, во всех функциях конструктор продукта вызывается и использует Позвоните Свойства объекта продукта присоединяются к пиццерии и игрушечным объектам соответственно.
Когда новые экземпляры созданы из объектов пиццы и игрушек, параметры предоставляются как имя, цена и категория. Категория применяется только в определении только, но имя и цена применяются с использованием присоединения конструктора объекта продукта, поскольку они определены и применяются в объекте продукта. С чуть более настраиваем мы можем достичь наследства.
2.
На фрагменте выше, мы определили функцию под названием Sleep. Он состоит из ответа на массив, который состоит из элементов, которые выполняют свойства, используя это ключевое слово. Они определяются в отдельном объекте вне функции.
Функциональный сон вызывается с объектом obj как аргумент. Как мы можем видеть, свойства obj устанавливаются в Это .animal и this.sleepduration, Соответственно, и мы получаем полное предложение как вывод.
Привязывать
Синтаксис
Возвращаться
Привязывать Возвращает копию функции с прилагаемой это и аргументы.
Описание
привязывать Функция очень похоже на Позвоните Функция, с основным отличием, являющимся тем, что связывает, возвращает новую функцию, тогда как вызов не делает.
Согласно техническим характеристикам ECMAScript 5, функция возвращается привязывать это специальный тип экзотического объекта функции (как они это называют) называется Связанная функция (БФ) Отказ BF обертывает оригинальный объект функции. Вызов BF управляет обернутой функцией в нем.
Примеры
1.
В приведенном выше фрагменте мы определили переменную X и объект, называемый модулем. Он также содержит свойство под названием х и другое свойство, соответствующее значение которого является функцией, которая возвращает значение х Отказ
Когда функция GetX называется, это возвращает значения х который определяется внутри объекта, а не х в глобальном масштабе.
Другая переменная объявляется в глобальном объеме, который называет GetX Функция из модуль объект. Но как переменная находится в глобальном масштабе, это В GetX Указывает на глобальный х И, следовательно, 9 возвращается.
Определена другая переменная, которая вызывает предыдущую функцию, но на этот раз связывает указанную функцию с модуль объект. Это связывание возвращает значение х внутри объекта. Из-за переплета, это В функции указывает на значение х в объекте и не глобальный х Отказ Следовательно, мы получаем 81 в качестве вывода
Заключение
Теперь, когда мы узнали основы о методах, вы все равно могут быть немного запутаны о том, почему есть 3 разных функция, которые делают практически то же самое. Чтобы уточнить эту концепцию, вы должны практиковаться с разными ситуациями и сценариями, чтобы вы могли узнать более тщательно, где они могут быть использованы. Они наверняка сделают ваш код очистки кода и мощнее.
Если вам понравилась эта статья, пожалуйста, хлопайте? и следовать? для большего.