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 modifierthis
pointé en JavaScriptthis
指向的方法
在 JavaScript 中,this
关键字引用当前执行上下文的当前对象。但是,有时候需要改变this
的指向,以便在不同的对象上下文中使用相同的方法。以下是在 JavaScript 中改变this
指向的几种方法:
1. 绑定(Bind)
bind()
方法返回一个新函数,该函数的this
值已绑定到指定的对象。语法如下:
function.bind(object)
例如:
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"
2. 调用(Call)和应用(Apply)
call()
和apply()
方法直接调用一个函数,并允许您指定this
值。语法如下:
function.call(object, arg1, arg2, ...) function.apply(object, [arg1, arg2, ...])
与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"
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 :
const person = { name: 'John', greet: () => { console.log(`Hello, my name is ${this.name}`); } }; person.greet(); // 输出:"Hello, my name is John"
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!