let worker = {
someMethod() {
return 1;
},
slow(x) {
alert("Called with " + x);
return x * this.someMethod(); // (*)
}
}
function decorator(func){
let cashe = new Map();
return function(x){
if(cashe.has(x)){
return cashe.get(x);
}
let result = func(x);
cashe.set(x, result)
return result
}
};
worker.slow = decorator(worker.slow);
console.log( worker.slow(1) )
Потому что func
внутри decorator
оторвана от worker
и вызывается в глобальном контексте.
let worker = {
someMethod() {
return 1;
},
slow(x) {
alert("Called with " + x);
return x * this.someMethod(); // (*)
}
};
function decorator(func) {
let cashe = new Map();
return function(x) {
if (cashe.has(x)) {
return cashe.get(x);
}
let result = func(x);
cashe.set(x, result);
return result;
};
};
worker.slow = decorator(worker.slow.bind(worker)); // !!! bind
console.log(worker.slow(1))
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Помогите понять в чем проблема с методом ganttcreateTask()
В своем тренировочном проекте столкнулся с следующей проблемойВ проекте есть старницы где формы подгружаются динамически в виде таблице...