概念
- JavaScript 没有提供传统面向对象语言中的类式继承,而是通过原型委托的方式来实现对象与对象之间的继承;
- JavaScript是动态语言,而动态类型语言的变量类型要到程序运行的时候,待变量被赋予某个值之后,才会具有某种类型,这会导致在程序运行期间有可能发生跟类型相关的错误,而静态语言(例如java),它是子编译时便已经确定变量的类型,这样编辑器就可以帮助我们提前避免程序在运行期间有可能发生的一些错误;
多态
- 同一操作作用于不同的对象上面,可以产生不同的解释和不同的执行结果。换句话说,给不同的对象发送同一个消息的时候,这些对象会根据这个消息分别给出不同的反馈;
- 多态背后的思想是将“做什么”和“谁去做以及怎样去做”分离开来,也就是将“不变的事物”与 “可能改变的事物”分离开来,把不变的部分隔离起来,把可变的部分封装起来,这就给予了我们扩展程序的能力;
- JavaScript的多态性是与生俱来的,因为在JavaScript中,并不需要像java一样向上转型之类的技术来取得多态的效果,一个JavaScript对象可以表示多种类型对象。
封装
- 封装的目的是将信息隐藏,封装应该被视为“任何形式的封装”,也就是说,封装不仅仅是隐藏数据,还包括隐藏实现细节、设计细节以及隐藏对象的类型等;