采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
以下是浏览器里输入Student.__proto__运行的结果,Student不是没有__proto__么,为什么会输出PeoPle?
> Student.__proto__ > class People { constructor(name) { this.name = name } eat() { console.log(`${this.name} eat something`) } }
这个逻辑没问题,因为 Student extends People 也是有一层继承关系的。可以子类可以使用父类的方法,例如
class A {} A.bar = function() { console.log('bar') } class B extends A {} B.__proto__.bar() // 'bar'
但是我刚才试了下:Student.__proto__.eat()会报错 ·VM1736:1 Uncaught TypeError: Student.__proto__.eat is not a function·
我有点迷了,不是只有实例才有__proto__隐式原型么?按照课程中的那个原型链的图,Student的prototype显示原型和xialuo的__proto__隐式原型都指向Student.prototype
每个class都有显式原型prototype; 每个实例都有隐式原型__proto__; 实例的__proto__指向对应class的prototype;
登录后可查看更多问答,登录/注册
针对时下面试高频考点,帮助新人js面试快速通关
1.6k 17
1.8k 11
1.3k 11
1.2k 11