做百度前端技术学院对象原型继承时,对这个问题题目的不解
我理解的继承应该是这样的,通过原型链将函数的prototype
链接起来,当生成一个新的实例(new
)的时候,再将该实例加入到原型链中,从而实现对一些方法或属性的复用。
而看这里的描述是直接将构造函数Teacher
的prototype
指向了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]]
,这俩个翻译的出处在哪里呢?为什么要用这两个词来区分它们呢?
Constructor.prototype 称为函数的自有原型
someObject.__proto__ 称为原型