JavaScript权威指南学习之第9章 类和模块
2015-10-04 23:00
459 查看
1、原型对象是类的唯一标识:当且仅当两个对象继承自同一个原型对象时,它们才是属于同一个类的实例。r instanceof Range判断r是否是Ranger的对象时,instanceof运算符并不会检查r是否是由Ranger()构造函数初始化而来,而会检查r是否继承自Ranger.prototype。不过,instanceof的语法规则强化了“构造函数是类的公有属性”的概念。
2、构造函数和原型对象之间的关系:
![](http://img.blog.csdn.net/20151004230009163?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3、JavaScript中基于原型的继承机制是动态的:对象从其原型继承属性,如果创建对象之后原型的属性发生改变,也会影响到继承这个原型的所有实例对象。这意味着我们可以通过给原型对象添加新的方法来扩充JavaScript类。
4、不要关注“对象的类是什么”,而是关注“对象能做什么”。这种思考问题的方式称为“鸭式辩型”。
5、多个类中的方法可以共用一个单独的函数。比如Array类通常定义了一些内置方法,剐定义了一个类,它的实例是类数组的对象,则可以从Array.prototype中将函数复制至所定义的类的原型对象中。如果以经典的面向对象语言的视角来看JavaScript的话,把一个类的方法用到其他的类中的做法也称作“多重继承”(multiple inheritance)。然而,JavaScript并不是经典的面向对象语言,我更倾向于将这种方法重用更正式地称为“方法借用”(borrowing)。
6、JavaScript中的面向对象基数、子类、ES5中的类、模块等。
2、构造函数和原型对象之间的关系:
3、JavaScript中基于原型的继承机制是动态的:对象从其原型继承属性,如果创建对象之后原型的属性发生改变,也会影响到继承这个原型的所有实例对象。这意味着我们可以通过给原型对象添加新的方法来扩充JavaScript类。
4、不要关注“对象的类是什么”,而是关注“对象能做什么”。这种思考问题的方式称为“鸭式辩型”。
5、多个类中的方法可以共用一个单独的函数。比如Array类通常定义了一些内置方法,剐定义了一个类,它的实例是类数组的对象,则可以从Array.prototype中将函数复制至所定义的类的原型对象中。如果以经典的面向对象语言的视角来看JavaScript的话,把一个类的方法用到其他的类中的做法也称作“多重继承”(multiple inheritance)。然而,JavaScript并不是经典的面向对象语言,我更倾向于将这种方法重用更正式地称为“方法借用”(borrowing)。
6、JavaScript中的面向对象基数、子类、ES5中的类、模块等。
相关文章推荐
- Javascript中使用replace()方法+正则表达式替换掉所有字符
- JavaScript中null和undefined的区别
- JS(获得当前时间并且用2015-01-01格式表示)
- JavaScript中字符串的使用
- Extjs Web Desktop申请书
- 第二章:javascript: 数组
- 【JS】JS小案例之表格操作
- JS 对象进阶
- 【JS】day04_常用内置对象二_常用内置对象三
- Chromium内核研发:当前没有解决的3个技术问题
- JavaScript总结
- JSP内置对象
- js中,var 修饰变量名,它可有可无吗?
- 用webstorm进行javascript的Debug
- 【JS】day03_JavaScript对象_常用内置对象一
- 一个JavaScript实现的贷款计算器
- 201510041513_《Javascript权威指南(第六版)——组合VS子类、类层次结构和抽象类》(P235-239)
- JSON数据解析------Function和JSON-Kit
- chrome 里的 Error console
- javascript(条件语句和循环语句)