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.
Méthodes pour modifier this
pointé en JavaScriptthis
指向的方法
在 JavaScript 中,this
关键字引用当前执行上下文的当前对象。但是,有时候需要改变 this
的指向,以便在不同的对象上下文中使用相同的方法。以下是在 JavaScript 中改变 this
指向的几种方法:
1. 绑定(Bind)
bind()
方法返回一个新函数,该函数的 this
值已绑定到指定的对象。语法如下:
<code>function.bind(object)</code>
例如:
<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>
2. 调用(Call)和应用(Apply)
call()
和 apply()
方法直接调用一个函数,并允许您指定 this
值。语法如下:
<code>function.call(object, arg1, arg2, ...) function.apply(object, [arg1, arg2, ...])</code>
与 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>
3. 箭头函数
箭头函数(=>
)隐式地绑定 this
到其父级作用域。这意味着箭头函数内的 this
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>
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 : 🎜rrreeeCe 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!