做百度前端技术学院对象原型继承时,对这个问题题目的不解?

作者站长头像
站长
· 阅读数 21

百度前端技术学院对象原型继承时,对这个问题题目的不解

做百度前端技术学院对象原型继承时,对这个问题题目的不解?

我理解的继承应该是这样的,通过原型链将函数的prototype链接起来,当生成一个新的实例(new)的时候,再将该实例加入到原型链中,从而实现对一些方法或属性的复用。做百度前端技术学院对象原型继承时,对这个问题题目的不解?

而看这里的描述是直接将构造函数Teacherprototype指向了Person做百度前端技术学院对象原型继承时,对这个问题题目的不解?

Teacher 构造函数继承 Person 所有的属性和方法


Teacher 的原型指向 Person

对于这里的测试用例也不太理解

var teacherWang = new Teacher("Miss Wang", "28", "English");


//获取 obj 的原型对象
function getProto(obj) {
  // your code here
}

console.log(getProto(teacherLiu)); // -> Teacher

这里的返回值为什么是Teacher呢?我们通过new创建的一个对象,它的[[Prototype]]应该是Teacher.prototype才是。

在这个描述中,出现了原型原型对象两个名词,原型应该是说的是prototype,原型对象说的应该是[[Prototype]],这俩个翻译的出处在哪里呢?为什么要用这两个词来区分它们呢?

回复
1个回答
avatar
test
2024-06-23
  • 第一个问题:答案是 Teacher.prototype
  • 第二个问题,国内翻译很多,也有叫做隐式显式的,但以 MDN 文档为准即可

Constructor.prototype 称为函数的自有原型someObject.__proto__ 称为原型answer imageanswer image

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容