原型链的理解

面向对象的三大特性

封装 继承 多态

我们知道获取一个对象的属性,如果对象没有该属性就会到对象的原型上面获取,这里引出原型链的概念,原型上也可以有原型

 1 var obj = {
 2     name: 'heihei'
 3 }
 4 obj.__proto__ = {
 5 
 6 }
 7 obj.__proto__.__proto__ = {
 8 
 9 }
10 obj.__proto__.__proto__.__proto__ = {
11     age: 18
12 }
13 console.log(obj.age);
14 console.log(obj.__proto__.__proto__.__proto__.__proto__);
15 console.log(obj.__proto__.__proto__.__proto__.__proto__.__proto);

 

 

 由结果看出来,查找属性会沿着原型的原型的原型直到尽头查找,这就是原型链

可以看到最顶层的原型是[Object:null prototype]{} 顶层原型的原型为null

直接给结论:Object的原型是顶层原型,也就是说原型链最顶层的原型对象就是Object的原型


var obj1 = {}
var obj2 = new Object()
console.log(obj1.__proto__);
console.log(obj2.__proto__ === Object.prototype);
console.log(obj1.__proto__.__proto__);
console.log(obj2.__proto__.__proto__);
 

 

posted @ 2022-03-19 11:08  沁霓  阅读(74)  评论(0)    收藏  举报