我是javascript的新手。
我正在编写一个面向对象的程序来查找矩形和正方形的面积。我有三个类 - 形状,正方形和矩形。我想继承父类 - 形状,进入子类 - Square,我遇到了与原型相关的问题。法典:
Square.prototype= new Shape();
Square.prototype.__proto__= Shape.prototype;
我想知道:
1. 写Square.prototype= new Shape();
是否足以将类形状继承为类正方形?
2.线有什么区别:
Square.prototype.__proto__= Shape.prototype;
导致类广场。
非常感谢任何帮助,谢谢!
对于您的继承,我宁愿使用:
Square.prototype = Object.create(Shape.prototype);
Square.prototype.constructor = Shape;
出于这些原因:了解 Object.create() 和 new SomeFunction() 之间的区别
Square.prototype.__proto__= Shape.prototype;
不是一个好的做法,因为它会用另一个原型替换对象的所有原型链。此操作非常缓慢。此外,属性__proto__
已被弃用,并且可能随时消失:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto