Maison > interface Web > js tutoriel > Quelles sont les méthodes pour changer ce pointeur en js ?

Quelles sont les méthodes pour changer ce pointeur en js ?

下次还敢
Libérer: 2024-05-06 13:57:17
original
877 Les gens l'ont consulté

En JavaScript, vous pouvez utiliser les méthodes suivantes pour modifier ce pointeur : Bind : Renvoie une nouvelle fonction dont cette valeur est liée à l'objet spécifié. Appeler et appliquer : appelez la fonction directement et autorisez la spécification de cette valeur. Fonctions fléchées : liez-les implicitement à sa portée parent.

Quelles sont les méthodes pour changer ce pointeur en js ?

Méthodes pour modifier this pointé en JavaScriptthis 指向的方法

在 JavaScript 中,this 关键字引用当前执行上下文的当前对象。但是,有时候需要改变 this 的指向,以便在不同的对象上下文中使用相同的方法。以下是在 JavaScript 中改变 this 指向的几种方法:

1. 绑定(Bind)

bind() 方法返回一个新函数,该函数的 this 值已绑定到指定的对象。语法如下:

<code>function.bind(object)</code>
Copier après la connexion

例如:

<code>const person = {
  name: 'John',
  greet: function() {
    console.log(`Hello, my name is ${this.name}`);
  }
};

const boundGreet = person.greet.bind({ name: 'Mary' });
boundGreet(); // 输出:"Hello, my name is Mary"</code>
Copier après la connexion

2. 调用(Call)和应用(Apply)

call()apply() 方法直接调用一个函数,并允许您指定 this 值。语法如下:

<code>function.call(object, arg1, arg2, ...)
function.apply(object, [arg1, arg2, ...])</code>
Copier après la connexion

bind() 不同,call()apply() 会立即执行函数。

例如:

<code>const person = {
  name: 'John'
};

function greet(greeting) {
  console.log(`${greeting}, my name is ${this.name}`);
}

greet.call(person, 'Hello'); // 输出:"Hello, my name is John"
greet.apply(person, ['Hello']); // 输出:"Hello, my name is John"</code>
Copier après la connexion

3. 箭头函数

箭头函数(=>)隐式地绑定 this 到其父级作用域。这意味着箭头函数内的 this

En JavaScript, le mot-clé this fait référence à l'objet actuel de l'exécution en cours contexte. Cependant, il est parfois nécessaire de changer le pointeur de this afin que la même méthode puisse être utilisée dans différents contextes d'objet. Voici plusieurs façons de modifier le point de this en JavaScript :

🎜1 La méthode Bind (Bind)🎜🎜bind() renvoie un nouveau. Une fonction dont la valeur this est liée à l'objet spécifié. La syntaxe est la suivante : 🎜
<code>const person = {
  name: 'John',
  greet: () => {
    console.log(`Hello, my name is ${this.name}`);
  }
};

person.greet(); // 输出:"Hello, my name is John"</code>
Copier après la connexion
🎜Par exemple : 🎜rrreee🎜🎜2. Appeler et appliquer🎜🎜call() et apply() Appels de méthode. une fonction directement et vous permet de spécifier une valeur this. La syntaxe est la suivante : 🎜rrreee🎜 Contrairement à bind(), call() et apply() exécuteront la fonction immédiatement. 🎜🎜Par exemple : 🎜rrreee🎜🎜3. Fonctions fléchées🎜🎜Les fonctions fléchées (=>) lient implicitement this à sa zone de rôle parent. Cela signifie que la valeur this à l'intérieur d'une fonction fléchée pointe toujours vers l'objet qui l'a créée. 🎜🎜Exemple : 🎜rrreee

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal