Модифицировать метод

127
06 мая 2019, 18:00

У меня есть

var Actions = {
    damage : function(count,type){
        return function(){
            var _damage = {
                type : type ,
                count : count
            };
        G.enemy.take_damage[(_damage.type || this.damage)].call(G.enemy, (_damage.count || this.count));
//берутся внутренние хар-ки или самой карты, если внутренних нет
        }
    },
}

Объект создающий функции. Далее они вызываются вот так :

var attack = Actions.damage(1);
//this == card
attack.call(this);

Теперь к моей проблеме, я хочу сделать функцию, которая будет модифицировать объект _damage в функции attack. Что-то на подобии :

function modify(properties,funct){
    //а что писать здесь никак не пойму
}
Answer 1

Это наверняка на самый лучший вариант, но он делает, то что тебе нужно (даже немного проще) и без глобальных переменных. Изменить "внутренности" функции можно путем передачи новых параметров. Повникай:

var getVariableFunction = (function() {
    var oldA, oldB;
    return function(A, B) {
        oldA = A;
        oldB = B;
        return function(x = oldA, y = oldB) {
            if (x !== oldA && y !== oldB) {
                oldA = x;
                oldB = y;
            }
            console.log(oldA, oldB);
        }
    };
})();

var attack = getVariableFunction(1, 2);
attack(); // 1, 2
attack(); // 1, 2
attack(4, 5); // меняем внутренности // 4, 5
attack(); // 4, 5
attack(); // 4, 5

Функцию modify сам, думаю, допишешь на основе примера выше (если есть необходимость). Чую заминусуюсь за такой код))

READ ALSO
userscript js переход по ссылке

userscript js переход по ссылке

пишу юзерскрипт для игры

157
Hover эффект на текст

Hover эффект на текст

Нужно чтобы при наведении на текст менялась картинка и текст сам менял цветЯ написал так, но не знаю как изменение цвета текста сделать после...

150
Scroll на JavaScript не работает

Scroll на JavaScript не работает

Пытаюсь сделать скрол - стрелочка которая перематывает на верх и затем меяется на стрелку вниз которая перематывает на старое положениеВот...

129