<读书笔记>Javascript系列之6种继承(面向对象)
2017-06-20 20:04
621 查看
写在前面:
以下三选一:阅读博文JavaScript 对象详解.
阅读《JavaScript权威指南》第6章。
阅读《JavaScript高级程序设计》第6章。
注意:只需要看“理解对象”(Understanding Objects)部分。
6.3 继承
OO语言继承方式接口继承
实现继承
ECMAScript 只支持实现继承,而且其实现继承主要是依靠原型链。
6.3.1 原型链
回顾一下构造函数、原型、实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。
假如我们让原型对象等于另一个类型的实例,结果会怎么样呢?
显然,此时的原型对象将包含一个指向另一个原型的指针,相应的,另一个原型中也包含着一个指向另一个构造函数的指针。
假如另一个原型又是另一个类型的实例,那么上述关系依然成立,如此层层递进,就构成了实例与原型的链条。这就是所谓的原型链。
实现原型链的基本模式
function SuperType(){ this.property = true; } SuperType.prototype.getSuperValue = function(){ return this.property; }; function SubType(){ this.subproperty = false; } //继承了 SuperType SubType.prototype = new SuperType(); SubType.prototype.getSubValue = function (){ return this.subproperty; }; var instance = new SubType(); alert(instance.getSuperValue()); //true
以上代码定义了两个类型: SuperType 和 SubType。
每个类型分别有一个属性和一个方法。
它们 的主要区别是 SubType 继承了 SuperType,而继承是通过创建 SuperType 的实例,并将该实例赋给 SubType.prototype 实现的。
实现的本质是重写原型对象,代之以一个新类型的实例。
换句话说,原来存在于 SuperType 的实例中的所有属性和方法,现在也存在于 SubType.prototype 中了。
在确立了 继承关系之后,我们给 SubType.prototype 添加了一个方法,这样就在继承了 SuperType 的属性和方 法的基础上又添加了一个新方法。
未完待续
相关文章推荐
- <读书笔记>JavaScript系列之7种创建对象(面向对象)
- <<High Performance JavaScript>>读书笔记-2.Data Access
- <<High Performance JavaScript>>读书笔记-10.Tools
- <<High Performance JavaScript>>读书笔记-5.Strings and Regular Expressions
- <<High Performance JavaScript>>读书笔记-1.Loading and Execution
- <<High Performance JavaScript>>读书笔记-3.DOM Scripting
- <<High Performance JavaScript>>读书笔记-8.Programming Practices
- <<High Performance JavaScript>>读书笔记-6.Responsive Interfaces
- <<High Performance JavaScript>>读书笔记-7.Ajax
- <<java编程思想>>读书笔记
- <<iSCSI: The universal storage connection>>读书笔记
- <高性能JavaScript>笔记 [1~3]
- <高性能JavaScript>笔记 [4~6]
- <转>Android2.2 API 中文文档系列(3) —— AccessibilityService
- <转>Android2.2 API 中文文档系列(8) —— QuickContactBadge
- <a href="#">与<a href="javascript:void(0)">
- <转>Android2.2 API 中文文档系列(2) —— EditText
- <转>Android2.2 API 中文文档系列(1) —— TextView
- <转>Android2.2 API 中文文档系列(7) —— ImageButton
- <转>Android2.2 r1 API 中文文档系列(10) —— CheckBox