【问题标题】:Should `super()` return `this` even for functions?`super()` 是否应该为函数返回 `this`?
【发布时间】:2019-05-22 01:42:22
【问题描述】:

我发现普通浏览器和 Edge 之间的行为有所不同。当您从函数而不是类继承时,super() 在 Edge 下返回 undefined

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

Live version.

哪种行为是正确的?

【问题讨论】:

    标签: javascript cross-browser microsoft-edge


    【解决方案1】:

    构造函数不负责创建对象的指针。 然而,'new' 操作符会创建一个空白对象,并且它负责在构造函数中分配这个指针。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 1970-01-01
      相关资源
      最近更新 更多