class继承时 __proto__ 的问题

来源:3-4 原型链和instanceof

Inuyasha__

2020-02-01

class A {
  constructor(x, y) {
    console.log(x, y)
  }
}

class B extends A {
  constructor(x, y, z) {
    super(x, y)
    console.log(z)
  }
}
B.__proto__ === A // true

Array.__proto__ === Object // false

问题如上所示,
按课程中讲的话,貌似class的实现是跟原型链差不多的
上述代码是在chrome的控制台跑的

麻烦老师看一下为什么两个会有不同
可以给出解释吗。

写回答

1回答

双越

2020-02-02

Array 和 Object 都是 JS 中预留的一级函数,他俩并没有 A 和 B 的这种继承关系。

如果非要做一个比较,应该是这样: Array.prototype.__proto__ === Object.prototype

1
0

BAT大牛带你横扫初级前端JavaScript面试(第二版)

BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率

4268 学习 · 817 问题

查看课程