Maison> interface Web> js tutoriel> le corps du texte

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

下次还敢
Libérer: 2024-05-06 13:57:17
original
739 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 modifierthispointé en JavaScriptthis指向的方法

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

1. 绑定(Bind)

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

function.bind(object)
Copier après la connexion

例如:

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"
Copier après la connexion

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

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

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

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

例如:

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"
Copier après la connexion

3. 箭头函数

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

En JavaScript, le mot-clé thisfait référence à l'objet actuel de l'exécution en cours contexte. Cependant, il est parfois nécessaire de changer le pointeur de thisafin 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 thisen JavaScript :

1 La méthode Bind (Bind) bind()renvoie un nouveau. Une fonction dont la valeur thisest liée à l'objet spécifié. La syntaxe est la suivante :
const person = { name: 'John', greet: () => { console.log(`Hello, my name is ${this.name}`); } }; person.greet(); // 输出:"Hello, my name is John"
Copier après la connexion
Par exemple : rrreee2. 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 : rrreee3. Fonctions fléchéesLes 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:
source:php.cn
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 téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!