«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Понимание вызова, применения и связывания в JavaScript с помощью простых примеров

Понимание вызова, применения и связывания в JavaScript с помощью простых примеров

Опубликовано 8 ноября 2024 г.
Просматривать:186

Understanding call, apply, and bind in JavaScript with Simple Examples

Понимание вызова, применения и связывания в JavaScript с помощью простых примеров

При работе с JavaScript вы можете столкнуться с тремя мощными методами: вызов, применение и привязка. Эти методы используются для управления значением this в функциях, что упрощает работу с объектами. Давайте разберем каждый метод на простых примерах, чтобы понять, как они работают.

1. вызов метода

Метод вызова позволяет вызывать функцию с определенным значением this и передавать аргументы один за другим.

const person = {
  name: 'Alice',
  greet: function(greeting) {
    console.log(`${greeting}, my name is ${this.name}`);
  }
};

const anotherPerson = { name: 'Bob' };

person.greet.call(anotherPerson, 'Hello');
// Output: "Hello, my name is Bob"

В этом примере вызов меняет значение this с person на другоеPerson, поэтому функцияприветствия печатает «Здравствуйте, меня зовут Боб».

2. применить метод

Метод apply аналогичен вызову, но он принимает аргументы в виде массива, а не по одному.

const person = {
  name: 'Alice',
  greet: function(greeting, punctuation) {
    console.log(`${greeting}, my name is ${this.name}${punctuation}`);
  }
};

const anotherPerson = { name: 'Charlie' };

person.greet.apply(anotherPerson, ['Hi', '!']);
// Output: "Hi, my name is Charlie!"

Здесь Apply также меняет значение this на другое лицо и позволяет передавать несколько аргументов в виде массива.

3. Метод привязки

Метод привязки не вызывает функцию немедленно. Вместо этого он возвращает новую функцию с привязанным к этому значению, которую вы можете вызвать позже.

const person = {
  name: 'Alice',
  greet: function() {
    console.log(`Hi, my name is ${this.name}`);
  }
};

const anotherPerson = { name: 'Diana' };

const greetDiana = person.greet.bind(anotherPerson);

greetDiana();
// Output: "Hi, my name is Diana"

В этом примере привязка создает новую функцию GreetingDiana, привязанную к другому человеку. Когда вы вызываете GreetingDiana, он печатает «Привет, меня зовут Диана».

Краткое содержание

  • call: немедленно вызывает функцию с определенным значением this и аргументами, передаваемыми один за другим.
  • apply: немедленно вызывает функцию с определенным значением this и аргументами, передаваемыми в виде массива.
  • bind: возвращает новую функцию с определенным значением this, которую вы можете вызвать позже.

Эти методы удобны, когда вам нужно заимствовать методы из одного объекта для использования с другим или когда вам нужен больший контроль над значением this в ваших функциях.


Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/vamsi_76_89/understanding-call-apply-and-bind-in-javascript-with-simple-examples-4m5p?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с Study_golang@163 .com, чтобы удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3