Как использовать это в функции стрелки
Вот мой код :
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 ) Близнецы плоские просты в использовании.