window.pipedriveLeadboosterConfig = { base : 'leadbooster-chat.pipedrive.com', companyId : 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version : 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster existe déjà') } else { w.LeadBooster = { q : [], on : function (n, h) { this.q.push({ t : 'o', n : n, h : h }) }, trigger : function (n) { this.q.push({ t : 't', n : n }) }, } } })() Comprendre le mot-clé "this" dans JavaScript - The Codest
The Codest
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Industries
    • Fintech et banque
    • E-commerce
    • Adtech
    • Santé (Healthtech)
    • Fabrication
    • Logistique
    • Automobile
    • IOT
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
Flèche arrière RETOUR
2019-09-09
Développement de logiciels

Comprendre le mot-clé "this" dans JavaScript

Lukasz Kolko

Dans la plupart des langages de programmation orientés objet, le mot-clé "this" a une signification particulière. Il fait généralement référence à l'objet qui constitue le contexte d'exécution (c'est-à-dire à l'instance actuelle de l'objet). Par exemple, nous utilisons this pour faire référence à une propriété d'objet depuis l'intérieur : nous tapons this.propertyName, le contexte est alors l'objet et this y fait référence.

'ceci' en JavaScript

En JavaScript c'est plus compliqué car lorsque cette dépend non seulement de la manière dont la fonction est définie, mais aussi de la forme de son appel.

Regardez comment cette fonctionne en fonction du lieu et de la forme de l'invocation.

Le contexte mondial

Utilisé dans un contexte global lié à l'objet global, comme fenêtre dans un navigateur web.

this ; // fenêtre

Méthode interne à l'objet

Utilisé à l'intérieur d'une méthode objet liée à l'objet englobant le plus proche. L'objet est le nouveau contexte de la méthode cette mot-clé. Notez que vous ne devez pas modifier fonction () à la syntaxe ES6 fun : () => this.context car le contexte s'en trouverait modifié.

const obj = {
  context : "objet",
  fun : function() {
    return this.context ;
  }
} ;

obj.fun() ; // objet

Dans cet exemple, avec un objet imbriqué, cette se réfère toujours à son contexte le plus proche.

const nestedObj = {
  context : "parent",
  child : {
    contexte : "enfant",
    fun : function() {
      return this.context ;
    }
  }
} ;

nestedObj.child.fun() ; // child

Fonction sans contexte

Utilisé à l'intérieur d'une fonction qui n'a pas de contexte (n'a pas d'objet comme parent) lié au contexte global, même si la fonction est définie à l'intérieur de l'objet.

Notez que nous utilisons var contexte au lieu de let/const contexte parce que laisser et constante modifier le contexte de la variable incluse. var est toujours le plus proche du contexte d'exécution global. laisser et constante déclarer des variables uniquement dans un bloc local.

var context = "global" ;

const obj = {
  context : "objet",
  funA : function() {
    function funB() {
      const context = "fonction" ;
      return this.context ;
    }
    return funB() ; // invoqué sans contexte
  }
} ;

obj.funA() ; // global

A l'intérieur de la fonction constructeur

Utilisé à l'intérieur d'une fonction qui est le constructeur du nouvel objet qui lui est lié.

var context = "global" ;

function Obj() {
  this.context = "contexte Obj" ;
}

const obj = new Obj() ;
obj.context ; // contexte Obj

Fonction interne définie sur la chaîne de prototypes

Utilisé à l'intérieur d'une fonction définie sur la chaîne de prototypes pour créer un objet lié à celle-ci.

const ProtoObj = {
  fun : function() {
    return this.name ;
  }
} ;

const obj = Object.create(ProtoObj) ;
obj.name = "foo" ;
obj.fun() ; // foo

A l'intérieur call() et les fonctions apply()

call() et appliquer() sont JavaScript les fonctions. Celles-ci permettent à un objet d'utiliser des méthodes appartenant à un autre objet. call() prend des arguments séparément où appliquer() les prend sous forme de tableau.

cette est ici lié au nouveau contexte modifié dans call() et appliquer() des méthodes.

const objA = {
  context : "objA",
  fun : function() {
    console.log(this.context, arguments) ;
  }
} ;

const objB = {
  context : "objB"
} ;

objA.fun(1, 2) ; // objA, [1, 2]
objA.fun.call(objB, 1, 2, 3) ; // objB, [1, 2, 3]
objA.fun.apply(objB, [1, 2, 3, 4]) ; // objB, [1, 2, 3, 4]

Dans la fonction bind()

bind() est également une méthode JavaScript. Elle crée une nouvelle fonction qui aura cette fixé au premier paramètre transmis à bind()**.**

const objA = {
  context : "objA",
  fun : function() {
    console.log(this.context, arguments) ;
  }
} ;

const objB = {
  context : "objB"
} ;

const fun = objA.fun.bind(objB, 1, 2) ;
fun(3, 4) ; // objB, [1, 2, 3, 4]

Dans les gestionnaires d'événements

Utilisé dans n'importe quel gestionnaire d'événement (par exemple, addeventListener, onclick, attachEvent), il est lié à l'élément du DOM auquel l'événement était attaché.

document.querySelector(".foo").addEventListener("click", function() {
  this ; // se réfère à l'élément div `foo`.
}) ;

Fonction flèche ES6

Utilisé à l'intérieur de la fonction arrow, il est toujours lié à sa portée lexicale. Dans la fonction arrow, vous ne pouvez pas réaffecter la fonction cette de quelque manière que ce soit.

const globalArrowFunction = () => this ;

globalArrowFunction() ; // Fenêtre

const obj = {
  context : "objet",
  funA : () => this,
  funB : function() {
    return () => {
      return this.context ;
    } ;
  }
} ;

obj.funA() ; // fenêtre
obj.funB()() ; // objet
Rapport Fronented pour 2020

En savoir plus :

  • Les plus grands défis du développement de logiciels personnalisés
  • Quelles sont les différences entre un éditeur de logiciels et une agence de recrutement informatique ?

Articles connexes

Développement de logiciels

Construire des applications web à l'épreuve du temps : les conseils de l'équipe d'experts de The Codest

Découvrez comment The Codest excelle dans la création d'applications web évolutives et interactives à l'aide de technologies de pointe, offrant une expérience utilisateur transparente sur toutes les plateformes. Découvrez comment notre expertise favorise la transformation numérique et la...

LE CODEST
Développement de logiciels

Les 10 premières entreprises de développement de logiciels basées en Lettonie

Découvrez les principales sociétés de développement de logiciels en Lettonie et leurs solutions innovantes dans notre dernier article. Découvrez comment ces leaders de la technologie peuvent vous aider à développer votre entreprise.

thecodest
Solutions pour les entreprises et les grandes entreprises

L'essentiel du développement de logiciels Java : Un guide pour une externalisation réussie

Explorez ce guide essentiel sur le développement réussi de logiciels Java outsourcing pour améliorer l'efficacité, accéder à l'expertise et assurer la réussite des projets avec The Codest.

thecodest
Développement de logiciels

Le guide ultime de l'externalisation en Pologne

L'essor de outsourcing en Pologne est dû aux progrès économiques, éducatifs et technologiques, qui favorisent la croissance des technologies de l'information et un climat propice aux entreprises.

TheCodest
Solutions pour les entreprises et les grandes entreprises

Le guide complet des outils et techniques d'audit informatique

Les audits informatiques garantissent la sécurité, l'efficacité et la conformité des systèmes. Pour en savoir plus sur leur importance, lisez l'article complet.

The Codest
Jakub Jakubowicz CTO & Co-Fondateur

Abonnez-vous à notre base de connaissances et restez au courant de l'expertise du secteur des technologies de l'information.

    A propos de nous

    The Codest - Entreprise internationale de développement de logiciels avec des centres technologiques en Pologne.

    Royaume-Uni - Siège

    • Bureau 303B, 182-184 High Street North E6 2JA
      Londres, Angleterre

    Pologne - Les pôles technologiques locaux

    • Parc de bureaux Fabryczna, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsovie, Pologne

      The Codest

    • Accueil
    • A propos de nous
    • Services
    • Études de cas
    • Savoir comment
    • Carrières
    • Dictionnaire

      Services

    • Conseil consultatif
    • Développement de logiciels
    • Développement backend
    • Développement frontal
    • Staff Augmentation
    • Développeurs backend
    • Ingénieurs en informatique dématérialisée
    • Ingénieurs des données
    • Autres
    • Ingénieurs AQ

      Ressources

    • Faits et mythes concernant la coopération avec un partenaire externe de développement de logiciels
    • Des États-Unis à l'Europe : Pourquoi les startups américaines décident-elles de se délocaliser en Europe ?
    • Comparaison des pôles de développement Tech Offshore : Tech Offshore Europe (Pologne), ASEAN (Philippines), Eurasie (Turquie)
    • Quels sont les principaux défis des CTO et des DSI ?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Conditions d'utilisation du site web

    Copyright © 2025 par The Codest. Tous droits réservés.

    fr_FRFrench
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek fr_FRFrench