Не удается получить доступ к переменным класса или методу внутри функции закрытия

#javascript #websocket

#язык JavaScript #websocket

Вопрос:

Я пытаюсь получить доступ к методу из класса внутри назначенной функции для события websocket, даже если я вызову его с помощью ключевого слова «this», функция не сможет его увидеть.

 'use strict'; let clientSocket = undefined;  window.addEventListener("load", function() {  class ClientSocket {   id = undefined;   constructor(id) {  this.id = id;  }   printMsg = (obj) =gt; {  if (obj === null || obj === undefined)  return;   if (this.isDebug) {  console.debug(obj)  }  }   conecta() {  const url = "ws://localhost:5000";  this.printMsg('URL: '   url)   const socket = new WebSocket(url);   //on open  socket.onopen = function (event) {  this.printMsg("SOCKET OPEN"); //CAN'T ACCESS THIS METHOD EVEN WITH 'THIS'  }   this.socket = socket;  }  }   clientSocket = new ClientSocket(1); });  

При событии сокета onopen функция не может получить доступ к методу printMsg() из clientSocket.