代码之家  ›  专栏  ›  技术社区  ›  polkovnikov.ph

“super()”是否应该返回“this”,即使对于函数也是如此?

  •  0
  • polkovnikov.ph  · 技术社区  · 7 年前

    我发现了普通浏览器和edge浏览器之间的行为差异。当从函数而不是类继承时, super() 收益率 undefined 在边缘。

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

    Live version.

    哪种行为是正确的?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Doğancan Arabacı    7 年前

    构造函数不负责创建对象的指针。 但是,“new”运算符创建一个空对象,并负责在构造函数中分配此指针。

    实际上,在使用新运算符调用构造函数之前,构造函数不是真正的构造函数。它们只是功能

    推荐文章