Вызов функции родительского класса в JavaScript, который был переписан дочерним классом - PullRequest
0 голосов
/ 29 апреля 2018

Я ищу способ изменить поведение метода «answer (x, y)» в классе Child и поменять местами переменные x и y, чтобы последний оператор возвращал «true». Однако проблема в том, что я не могу изменить дочерний класс, только родительский.

class Parent {
    // some code
}
class Child extends Parent {
    answer(x, y) {
        this.x = x;
        this.y = y;
        return 75 - this.x + this.y;
    }
}
let v = new Child();
v.answer(5, 15) === 65; //should be true
v.answer(15, 5) === 85; //should be true

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

Что я понял, так это то, что у вас есть функция подкачки в parent и вы хотите вызвать ее перед выполнением какой-либо операции внутри функции ответа child. Если это так, надеюсь, я ответил на ваш запрос ниже.

   class Parent {
        // some code
       swap (x, y) {
        let temp = this.x;
        this.x = this.y;
        this.y = temp;
       }
    }
    class Child extends Parent {
        answer(x, y) {
            super.swap.call(this, x, y); // Call parent func that swaps variable using child context
            this.x = x;
            this.y = y;
            return 75 - this.x + this.y;
        }
    }
    let v = new Child();
    v.answer(5, 15) === 65; //should be true
    v.answer(15, 5) === 85; //should be true
0 голосов
/ 29 апреля 2018

Вы можете использовать геттеры / сеттеры, чтобы поменять местами x и y при получении.

Показать спойлер

...