前言
之前的一小节讲解了JS对象和构造函数、prototype(原型),接下来我会讲解原型链和继承。如果不明白的同学可以回顾一下,这些知识会比较复杂,比较绕。不明白的时候,多打几个demo就明白了。
[[prototype]]隐式原型
上一节说到隐式原型和对象,构造函数。先让我们回忆一下隐式原型,待会需要根据隐式原型来讲原型链。
// 使用对象字面量创建一个对象
var a1 = {};
console.log(a1.__proto__ === Object.prototype); // true
// 定义一个构造函数
function testObject(_age) {
this.age = _age;
}
testObject.prototype.name = 'xiaoming';
// 生成一个实例
var b1 = new testObject(18);
console.log(b1.__proto__ === testObject.prototype); // true
可以很清除的看到__proto__指向了对象构造函数的原型对象。那么我们就开始正体吧。