javascript - `super()` 是否应该为函数返回 `this`?
问题描述
我发现普通浏览器和 Edge 之间的行为存在差异。当您从函数而不是类继承时,在 Edge 下super()
返回。undefined
const f = function () {};
class g extends f {
constructor() {
if (super()) {
document.body.innerHTML = 'Sane browser';
}
}
}
new g();
哪种行为是正确的?
解决方案
构造函数不负责创建对象的指针。然而,'new' 运算符会创建一个空白对象,并负责在构造函数中分配此指针。
实际上,在使用 new 运算符调用构造函数之前,它们并不是真正的构造函数。它们只是功能
推荐阅读
- javascript - 纯 JS:将数据属性列表存储在数组中,然后迭代
- javascript - 使用 @keyframes 鼠标悬停时的 SVG 反向动画不起作用
- javascript - 为什么在js文件中用json声明变量而不是读取json?
- php - 无法使用 php 和 oci 选择“TEXT”列?
- c# - StreamReader.ReadLine() 非常奇怪的行为
- python - 如何在 python 列表中查找特定字符串,如果找到打印位置,否则打印 0
- java - 在世界的边缘转身
- html - 如何强制图像以纵向显示?
- php - 致命错误:未捕获的错误:无法将 mysqli_result 类型的对象用作数据库的数组
- google-sheets - 基于另一张工作表中的规则的单元格中文本的总和