class CLS {
asyncFn(v, fn) {
... некие асинхронные действия
v.v1 = ......;
v.v2 = ......;
fn();
};
asyncRes(v) {
...
};
data(v1, v2) {
const v = {v1: v1, v2: v2};
// и вот тут и доп.вопрос
this.asyncFn(v, () => {
this.asyncRes(v);
})
};
}
function fName (var1, var2, var3) {... работаем с var1, var2, var3 ... }
function fName (vars) { ... работаем с vars.var1, vars.var2, vars.var3 ... }
class Test {
constructor() {
this.s = "a";
}
a1(str, fn) {
str += this.s;
fn(str);
};
b1() {
let t1 = "12";
this.a1(t1, (r1) => {
console.info(t1); // 12
console.info(r1); // 12a
});
};
}
class Test {
constructor() {
this.s = "a";
}
a1(str, fn) {
str.val += this.s;
fn();
};
b1() {
let t1 = {"val": "12"};
this.a1(t1, (r1) => {
console.info(t1.val); // 12a
console.info(r1.val); // 12a
});
};
}
function req(params, ext) {
helper.method(params, (body) => {
this.result(body, ext);
});
};
function req(params, ext) {
helper.method(params, this.result);
};
метод data() вызывается крайне часто, в среднем 5000/сек доп вопрос заключается в том, что каждый вызов мало того, что создает объект "v" (но благодаря тому, что мы используем объект, то пробрасывать параметры/результат и переопределять отдельно значения не требуется - просто работаем прямо с объектом сразу, т.к. он передается по ссылке)...
но выходит, что при каждом вызове this.asyncFn(...) создается и анонимная функция, цель которой тупо вызвать другой метод класса, чтобы можно было работать через this... просто передать
this.asyncFn(v, this.asyncRes);
нельзя, т.к. при вызове теряется контекст класса и this будет недоступен в методе...
Вот есть ли вариант как-то это реализовать все-таки без создания этих бестолковых (анонимных "пустых") функций?