【发布时间】:2020-10-03 15:24:28
【问题描述】:
我最近在学习 javaScript,偶然发现了这个
function Polygon() {
this.dimensions = "2d";
this.print = function () {
console.log(" 2d dimensions are easy to work with!");
}
}
function Quad() {
Polygon.call(this);
this.sides = 4;
}
var quad = new Quad();
quad.print();
function Polygon1() {}
Polygon1.prototype.dimensions = "2d";
Polygon1.prototype.print = console.log("2d dimensions are not difficult to work with!");
function Quad1() {
this.sides = 4;
}
Quad1.prototype = Object.create(Polygon1.prototype);
Quad1.prototype.constructor = Quad1;
var quad1 = new Quad1();
quad1.print();
在这两种情况下我都可以调用打印函数,那么这两种继承方式有什么区别,或者我在这里做错了什么?
【问题讨论】:
标签: javascript inheritance ecmascript-6 prototype prototypal-inheritance