本文讨论的是通过class声明的函数,有什么特点,或者说是指向了哪里.
class A() {} // A是一个类
// 要看class声明的函数指向哪里,只需将其[[Prototype]]属性打印到控制台,下面看看A和它的原型对象的指向
// 注:[[Prototype]]属性通过__proto__访问
console.log(A.__proto__);
console.log(A.prototype.__proto__);
可以看见,第一个是Function的原型对象,第二个是Object的原型对象.
即有下面等式,
A.__proto__ === Function.prototype
A.prototype.__proto__ === Object.prototype
// 验证如下:
console.log(A.__proto__ === Function.prototype);
console.log(A.prototype.__proto__ === Object.prototype);
可以看出,通过class声明的函数其构造函数(A)是指向函数的原型对象(Function.prototype)
其原型对象(A.prototype)是指向对象的原型对象的(Object.prototype)
在看看通过function声明的函数有啥特点:
function A() {}
console.log(