Должен ли `super ()` возвращать `this` даже для функций? - PullRequest
0 голосов
/ 21 декабря 2018

Я обнаружил разницу в поведении между обычными браузерами и Edge.Когда вы наследуете функцию, а не класс, super() возвращает undefined под Edge.

const f = function () {};
class g extends f {
    constructor() {
        if (super()) {
            document.body.innerHTML = 'Sane browser';
        }
    }
}
new g();

Live version.

Какое поведение является правильным?

1 Ответ

0 голосов
/ 21 декабря 2018

Конструкторы не несут ответственности за создание указателя объекта.Оператор 'new', однако, создает пустой объект и отвечает за назначение этого указателя внутри конструктора.

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

...