我发现了普通浏览器和edge浏览器之间的行为差异。当从函数而不是类继承时, super() 收益率 undefined 在边缘。
super()
undefined
const f = function () {}; class g extends f { constructor() { if (super()) { document.body.innerHTML = 'Sane browser'; } } } new g();
Live version.
哪种行为是正确的?
构造函数不负责创建对象的指针。 但是,“new”运算符创建一个空对象,并负责在构造函数中分配此指针。
实际上,在使用新运算符调用构造函数之前,构造函数不是真正的构造函数。它们只是功能