JavaScript权威指南学习之第9章 类和模块

来源:互联网 发布:电视控软件 编辑:程序博客网 时间:2024/05/16 17:35

1、原型对象是类的唯一标识:当且仅当两个对象继承自同一个原型对象时,它们才是属于同一个类的实例。r instanceof Range判断r是否是Ranger的对象时,instanceof运算符并不会检查r是否是由Ranger()构造函数初始化而来,而会检查r是否继承自Ranger.prototype。不过,instanceof的语法规则强化了“构造函数是类的公有属性”的概念。

2、构造函数和原型对象之间的关系:


3、JavaScript中基于原型的继承机制是动态的:对象从其原型继承属性,如果创建对象之后原型的属性发生改变,也会影响到继承这个原型的所有实例对象。这意味着我们可以通过给原型对象添加新的方法来扩充JavaScript类。

4、不要关注“对象的类是什么”,而是关注“对象能做什么”。这种思考问题的方式称为“鸭式辩型”。

5、多个类中的方法可以共用一个单独的函数。比如Array类通常定义了一些内置方法,剐定义了一个类,它的实例是类数组的对象,则可以从Array.prototype中将函数复制至所定义的类的原型对象中。如果以经典的面向对象语言的视角来看JavaScript的话,把一个类的方法用到其他的类中的做法也称作“多重继承”(multiple inheritance)。然而,JavaScript并不是经典的面向对象语言,我更倾向于将这种方法重用更正式地称为“方法借用”(borrowing)。

6、JavaScript中的面向对象基数、子类、ES5中的类、模块等。

0 0
原创粉丝点击