第一次拿到书的时候沉甸甸的,都是知识啊,表白作者和图灵系列,非常喜欢首页的——站在巨人的肩上。
纸张质量必须打好评!ps:是我对书中的一点总结,书中代码示例写的非常好,强烈建议入手一本慢慢品味~
动态类型语言
JavaScript是一种动态解释型语言。
动态类型语言由于无需类型检测,我们可以尝试调用任何对象的任何方法,而不用去考虑它是否被设计为拥有该方法。也就是,只关注对象是否有这种行为,不用关注对象本身。
动态类型语言的一个原则:面向接口编程,而不是面向实现编程。
多态
多态就是:将 做什么 和 谁去做以及怎样去做 分开
Java中要进行严格的类型检测,所以他需要向上转型,使用继承来获得多态的效果
但是JavaScript作为动态类型语言,他的多态性是与生俱来的
多态在面向对象程序设计中最根本的作用:把过程化的条件分支语句转化为对象的多态性,从而消除这些条件分支
有一个很好的例子:电影拍摄现场,当导演喊action的时候,大家一起开始工作,而不是导演每次走到每个人面前确认他们的分工再告诉他们要做什么。
设计模式是考虑怎样才能够在不重新设计的情况下进行改变。也就是可复用。
封装变化,需要把稳定不变的部分和容易变化的部分隔离开来,在系统演变的过程中,只需要修改那些容易变化的部分。
原型
JavaScript中没有类的概念,所有的对象都是通过克隆另一个对象得来的。这就是原型编程思想。
原型模式不只是一种设计模式,也被称为一种编程泛型。
基于原型链的委托机制就是原型继承的本质——当对象无法响应某个请求时,会把该请求委托给它自己构造器的原型。我理解的就是,如果我不明白什么问题,就要问爸爸妈妈,如果爸爸妈妈不明白,就要问爷爷奶奶~
JavaScript中的根对象是Object.prototype对象。
JavaScript中使用的new 调用的不是类,是函数构造器。
原型模式十分重要,通过原型来实现的面向对象系统虽然简单,但能力同样强大。