Utilisez les fonctions call(), apply() et bind() pour modifier ce point de la fonction

En JavaScript, vous pouvez utiliser   les fonctions et  call()pour  modifier   le pointeur d'une fonction.apply()bind()this

1. Utilisation  call() des fonctions

call() Les fonctions peuvent transmettre un objet comme premier argument à une fonction, définir cet objet comme  this valeur de la fonction, puis exécuter la fonction. Sa syntaxe est :

function.call(thisArg, arg1, arg2, ...)
  • thisArg est  this l'objet à définir comme valeur de la fonction.
  • arg1, arg2, ... est la liste des arguments passés à la fonction.

Par exemple, le code suivant montre comment utiliser  call() une fonction pour modifier la valeur d'une fonction this :

const person1 = { name: 'John' };
const person2 = { name: 'Jane' };

function greeting() {
  console.log(`Hello, I'm ${this.name}`);
}

greeting.call(person1); // 输出:Hello, I'm John
greeting.call(person2); // 输出:Hello, I'm Jane

2. Utilisation  apply() des fonctions

apply() Une fonction  call() fonctionne de la même manière qu'une fonction, mais la liste des paramètres est passée à la fonction sous la forme d'un tableau, et sa syntaxe est :

function.apply(thisArg, [argsArray])
  • thisArg est  this l'objet à définir comme valeur de la fonction.
  • argsArray est la liste des paramètres passés à la fonction, représentés sous forme de tableau.

Par exemple, le code suivant montre comment utiliser  apply() une fonction pour modifier la valeur d'une fonction this :

const person1 = { name: 'John' };
const person2 = { name: 'Jane' };

function greeting(age) {
  console.log(`Hello, I'm ${this.name} and I'm ${age} years old`);
}

greeting.apply(person1, [30]); // 输出: Hello, I'm John and I'm 30 years old
greeting.apply(person2, [25]); // 输出: Hello, I'm Jane and I'm 25 years old

3. Utilisation  bind() des fonctions

bind() La fonction crée une nouvelle instance de fonction et  this lie sa valeur à l'objet spécifié. Au lieu d'exécuter la fonction immédiatement comme  call() et  apply() , elle renvoie une  this nouvelle fonction liée à la valeur spécifiée. Sa syntaxe est :

function.bind(thisArg[, arg1[, arg2[, ...]]])
  • thisArg est  this l'objet à définir comme valeur de la fonction.
  • arg1, arg2, ... est la liste des arguments passés à la fonction.

Par exemple, le code suivant montre comment utiliser  bind() une fonction pour modifier la valeur d'une fonction this :

const person1 = { name: 'John' };
const person2 = { name: 'Jane' };

function greeting(age) {
  console.log(`Hello, I'm ${this.name} and I'm ${age} years old`);
}

const greetingPerson1 = greeting.bind(person1);
greetingPerson1(30); // 输出: Hello, I'm John and I'm 30 years old

const greetingPerson2 = greeting.bind(person2);
greetingPerson2(25); // 输出: Hello, I'm Jane and I'm 25 years old

Les trois méthodes ci-dessus peuvent modifier  this la valeur de la fonction, mais elles ont des objectifs et des détails de mise en œuvre différents.

Je suppose que tu aimes

Origine blog.csdn.net/m0_72446057/article/details/129612272
conseillé
Classement