15 JavaScript语言进阶-原型链模式

原型链模式

1,原型链模式

在通过对象.属性名方式来获取属性值时,首先它会在对象的私有的属性上查找,如果存在此属性则获取该属性值,如果私有属性里不存在,则通过"proto"查找所属类的原型,原型上存在则获取当前原型上公有的属性值,如果该原型上也不存在该属性,则继续通过"proto"继续向上查找,查找到Object类的prototype为止。该种查找机制就是原型链模式

2,原型链模式的特征

2.1,每一个函数数据类型(普通函数,类)都自带一个属性,即原型:prototype,该属性是一个对象数据类型的值。
2.2,在prototype上,浏览器会自动给它添加一个constructor(构造函数),属性值是当前函数(类)本身。
2.3,每一个对象数据类型会自带一个"proto"。

3,Object类的特征

3.1 Objece类是JavaScript中所有对象数据类型的基类。
3.2 在Object类的原型中没有__proto__属性。

示例:


//创建Fn类
function Fn(){
  this.x = 100;
}

//创建Fn的原型
Fn.prototype.getX = function(){
  console.log(this.x);
};

//创建两个Fn类的对象
var f1 = new Fn;
var f2 = new Fn;

图示:
在这里插入图片描述

发布了104 篇原创文章 · 获赞 64 · 访问量 5635

猜你喜欢

转载自blog.csdn.net/qq_42873753/article/details/101106380
15