javascript - 使用 setPrototypeOf 的 javascript 继承
问题描述
我在这里读到我们可以使用Object.create
来实现继承
这是一个Rectangle
继承自的示例Shape
function Shape() {}
function Rectangle() {
Shape.call(this);
}
Rectangle.prototype = Object.create(Shape.prototype);
Rectangle.prototype.constructor = Rectangle;
var rect = new Rectangle();
我想知道使用Object.setPrototypeOf
代替Object.create
是否正确?
function Shape() {}
function Rectangle() {
Shape.call(this);
}
Object.setPrototypeOf(Rectangle.prototype, Shape.prototype);
var rect = new Rectangle();
如果它是正确的,那么我想知道为什么这么多示例显示继承,因为在使用此方法时Object.create
您需要担心属性。constructor
由于Object.setPrototypeOf
您不需要重新定义consctrutor
道具,我发现它更安全、更简单。
解决方案
推荐阅读
- firefox - cypress iframe 功能适用于 chrome 但不适用于 firefox
- react-native - 无法在redux中将Auth令牌传递给reducer
- node.js - 无法在 ec2 Ubuntu MERN 堆栈中部署
- c# - 使用 C# indexOf() 方法,它不起作用
- reactjs - 每次渲染都会调用 React.cloneElement()
- python - 过滤numpy数组
- html - 为什么我的 CSS 代码不影响我的 html 代码?
- java - 从 GPX 文件创建 XSD 文件
- python - Pylint 报告具有嵌套结构的项目的错误导入错误
- scikit-learn - 解释多元回归的系数数组