Я хочу избавиться от _this/self/$ этой вспомогательной переменной в функции обратного вызова. Я пишу:
export class someClass {
someFunction = function() {
this.foo = "bar";
this.anotherClass.doSomething(this, function(foo) {
console.log(this.foo, "/", foo); // "bar/another bar"
});
}
}
и
export class anotherClass {
anotherFoo: string = "another bar";
doSomething(_this, cb) {
cb.call(_this, this.anotherFoo);
}
}
Есть более простой способ сделать это? Я хотел бы избавиться от этого параметра.
Это фантастический и более читаемый способ привязки текущего контекста к 'this'. Что касается компилятора, ничего не меняется :) –
@MehmetBaker '.bind()' очень медленный, и большинство современных JS-движков имеют встроенную поддержку функций стрелок, которые намного быстрее создают внутри. – robertklep
Я этого не знал, я посмотрю. Если это так, то ваш путь - это действительно самый точный ответ, который я думаю :) –