如2ality在ECMAScript 6中所述, 子类如下。
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
···
}
class ColorPoint extends Point {
constructor(x, y, color) {
super(x, y);
this.color = color;
}
···
}
let cp = new ColorPoint(25, 8, 'green');
此代码产生以下对象。
而且我知道JavaScript中的类比基于原型的继承是语法糖。 普通的旧JavaScript中的典型实现就像
function Parent(name) {
this.name = name || 'parent'
}
function Child(name, age) {
Parent.call(this, (name || 'child'))
this.age = age || 0
}
Child.prototype = Object.create(Parent.prototype)
Child.prototype.constructor = Child
var c = new Child
但是原型链看起来与之前的有所不同,大致如此
所以我的问题:
Function Instance
的{{1}}属性,使继承与ES2015的属性完全相同(您知道[[Prototype]]
是ES2015中引入的)