Amirhsnj Ответов: 0

Как использовать это в функции стрелки


Вот мой код :
class A {
  
  met(_callback) {
    
    _callback.bind(this)();
  }
  
}

const instanse = new A();

instanse.met(function () {
  console.log(this); // A {}
});

Это ясно, и "это" относится к классу А, использующему выражение функции.
Я хочу использовать 2 различных способа внутри .met(), выражение функции и функцию стрелки, но "это" не относится к классу A, использующему функцию стрелки :
class A {
  
  met(_callback) {
    
    _callback.bind(this)();
  }
  
}

const instanse = new A();

instanse.met(() => {
  console.log(this);
});


есть ли в любом случае доступ к классу А с этим ключевым словом внутри функции стрелки ?

Что я уже пробовал:

class A {
  
  met(_callback) {
    
    _callback.bind(this)();
  }
  
}

const instanse = new A();

instanse.met(() => {
  console.log(this);
});

Nathan Minier

Не очень хороший подход по ряду причин. Есть ли веская причина, по которой вы не можете этого сделать:

instance.met(() => {
console.log(экземпляр);
});

Amirhsnj

Я прочитал много статей об этом ключевом слове внутри функции стрелки и понял, что это невозможно. Я упомянул об этих способах только для простоты использования и ясности, когда кто-то другой использует этот класс. На самом деле класс является частью api, и мне нравится открывать руки для выбора(стрелка.f или f.expression ) Близнецы плоские просты в использовании.

0 Ответов