扩展如何配置原型链?

时间:2017-06-14 07:48:00

标签: javascript

class Foo extends Bar {
  constructor() {
    super();
  }
}

super是否会调用构造函数(aka class)Bar

Bar.prototype是否配置为Foo的原型属性?

在类方法(和文字方法)中,super可以用作Bar实例的引用(我认为)。它可以在构造函数中以相同的方式使用(以及可调用)吗?

我正在尝试将class / extend映射到传统的构造函数/ [[Prototype]]术语。

所以它类似于以下内容?

function Bar() {}
function Foo() {
  Bar.call(this);
}
Foo.prototype = Object.create(Bar.prototype);

1 个答案:

答案 0 :(得分:0)

  

super是否会调用构造函数(aka class)Bar

  

Bar.prototype是否配置为Foo的原型属性?

不,Bar.prototype[[Prototype]]的{​​{1}}对象被配置为prototype的{​​{1}}属性。

  

Foo方法(和文字方法)class可以用作对Bar实例的引用(我认为)。它可以在构造函数中以相同的方式使用(以及可调用)吗?

没有。在方法中,super指的是super AFAICT的[[Prototype]](即[[Prototype]]的{​​{1}}属性。

  

所以它类似于以下内容?