我是javascript的新手。
我正在编写面向对象的程序来查找矩形和正方形的区域。我有三个类 - Shape,Square和Rectangle。我想继承父类 - Shape,进入子类 - Square,我遇到了与原型相关的问题。代码:
Square.prototype= new Shape();
Square.prototype.__proto__= Shape.prototype;
我想知道:
1.在将类Shape继承到类Square中是否可以写Square.prototype= new Shape();
就足够了?
这条线有什么不同:
Square.prototype.__proto__= Shape.prototype;
因为广场。
非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
对于你的继承,我宁愿使用:
Square.prototype = Object.create(Shape.prototype);
Square.prototype.constructor = Shape;
由于这些原因:Understanding the difference between Object.create() and new SomeFunction()
Square.prototype.__proto__= Shape.prototype;
不是一个好习惯,因为它会用另一个原型替换你对象的所有原型链。此操作非常慢。此外,属性__proto__
已弃用,可能随时消失:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto