Aller au contenu principal

Le site sera en maintenance le 19/04/2026 entre 09h30 et 12h00.

Aller au contenu principal

Le mot-clé `this` (Le piège)

Javascript pour les Dév Python : Le Guide de Survie
3 min de lecture
0 commentaires
Gratuit

En Python, self est explicite. Tu sais ce que c'est (l'instance courante). En JS, this est... compliqué. Sa valeur change selon qui appelle la fonction.

Comportement classique

const user = {
    nom: "Bond",
    parler: function() {
        console.log("Mon nom est " + this.nom);
    }
};

user.parler(); // "Mon nom est Bond" (OK, 'this' est 'user')

Mais si tu sors la fonction...

const fonctionSeule = user.parler;
fonctionSeule(); // "Mon nom est undefined" !!! 😱 (Car 'this' est devenu global)

La solution Arrow Function

Les Arrow Functions n'ont pas leur propre this. Elles gardent celui du contexte parent. C'est pour ça qu'on les adore.

const user = {
    nom: "Bond",
    waitAndSpeak: function() {
        // Avec une arrow function, 'this' reste 'user'
        setTimeout(() => {
            console.log("Mon nom est " + this.nom); 
        }, 1000);
    }
};

user.waitAndSpeak(); // Ça marche !

Résumé

Si tu as besoin de this (dans une classe), utilise une Arrow Function si tu es dans un callback. Sinon, évite this si tu peux.

Commentaires (0)

Laisser un commentaire

Aucun commentaire pour le moment. Soyez le premier à commenter !