javascript 学习笔记二【原型链模式】
来源:互联网 发布:如何提升淘宝店铺销量 编辑:程序博客网 时间:2024/05/22 04:45
基于构造函数的原型模式,解决了方法或者属性公有的问题->把实例之间相同的属性和方法提取成公有的属性和方法。
三个重要知识点.
1、每一个函数数据类型(普通函数,类),都有一个天生自带的属性prototype(原型),并且这个属性是一个对象数据类型的值。
2、在prototype上,浏览器天生给它加了一个属性constructor(构造函数),属性值是当前函数(类)本身。
3、每一个对象类型(普通的对象、实例、prototype...)也天生带一个属性:__proto__,属性值是当前实例所属类的原型(prototype)
原型链模式
f1 instance of Object ->true 因为f1通过__proto__可以向上级查找,不管有多少级最后总能找到Object.
在Object.prototype上没有__proto__这个属性
f1.hasOwnProperty("x") //hasOwnProperty是f1的一个属性
但是我们发现在f1的私有属性上并没有这个方法,那如何处理的呢?
1、通过.对象名的方式获取属性值的时候,首先在对象的私有属性上进行查找,如果私有中存在这个属性,则获取的是私有属性的值。
如果私有的没有,则通过__proto__找到所属类型的原型(类的原型上定义的属性和方法都是当前实例共有的属性和方法),原型上存在的话,获取的是圆形上的属性值。
如果原型上也没有,怎继续通过原型上的__proto__继续向上查找,一直找到Object.Prototype为止,这种查找机制就是我们的原型链模式
某个方法中的this->看执行的时候“.”前面是谁this就是谁
1)需要确定this的指向(this是谁)
2)把this替换成对应的代码
3)按照原型链查找的机制,一步步的查找结果
“原型继承”是JS中最常见的一种继承方式,子类B想要继承父类A的所有属性和方法(私有+共有),只需要让B.prototype=new A 即可.
原型继承的特点:它是把父类私有的+共有的都继承到了子类原型上(子类共有的)。
核心:原型继承并不是把父类中的属性和方法克隆一份一模一样的给B,而是让B和A之间增加了原型链的链接,以后B的实例n想要A中的getX方法,
需要一级级的向上查找使用
- javascript 学习笔记二【原型链模式】
- JavaScript原型学习笔记
- javascript之对象学习笔记(二)--对象原型,继承
- javascript学习笔记(五)原型和原型链详解
- JavaScript学习笔记(三十四) 经典模式四-共享原型
- JavaScript学习笔记(二十八) 链式模式
- Javascript学习笔记(二)Javascript核心之类,构造函数和原型
- Javascript学习笔记(二)Javascript核心之类,构造函数和原型
- Javascript原型链(二)
- javascript笔记--原型和原型链详解
- 设计模式学习笔记之原型模式
- 设计模式学习笔记(原型模式)
- 设计模式学习笔记之原型模式
- 设计模式学习笔记(6)原型模式
- java设计模式学习笔记-原型模式
- 设计模式学习笔记-原型模式
- 设计模式学习笔记--原型模式
- [学习笔记][设计模式][原型模式]
- 全面解析Linux 内核 3.10.x
- 博客1
- 全面解析Linux 内核 3.10.x
- 【温故而知新】——架构分层
- 二叉树遍历-前序中序(非递归)
- javascript 学习笔记二【原型链模式】
- 全面解析Linux 内核 3.10.x
- BZOJ 1483: [HNOI2009]梦幻布丁
- KSGT
- ntp时间服务器源码安装
- 二叉树遍历-后序遍历(非递归)
- dp-水题
- 快速排序介绍与分析
- C# 分页 aspnetpager