中级javascript正在寻找一本学习面向对象编程的书

中级javascript正在寻找一本学习面向对象编程的书,javascript,jquery,oop,Javascript,Jquery,Oop,我是一名中级javaScript程序员,我对扩展我在面向对象编程(特别是面向对象javaScript)方面的知识感兴趣 比起浏览分散的网络资源,我更喜欢一本书。有人知道哪本书最适合抢先一步吗 谢谢区分经典OOP和OO JavaScript很重要 虽然有些语言,如Java、C#和Python,有利于学习类、对象、继承和多态性等OO概念,但JavaScript不是这些语言之一 JavaScript可以具有面向对象的特性,但通过使用原型。由于复杂的数据结构,它变得更加复杂 我认为你应该确切地说明你在照

我是一名中级javaScript程序员,我对扩展我在面向对象编程(特别是面向对象javaScript)方面的知识感兴趣

比起浏览分散的网络资源,我更喜欢一本书。有人知道哪本书最适合抢先一步吗


谢谢

区分经典OOP和OO JavaScript很重要

虽然有些语言,如Java、C#和Python,有利于学习类、对象、继承和多态性等OO概念,但JavaScript不是这些语言之一

JavaScript可以具有面向对象的特性,但通过使用原型。由于复杂的数据结构,它变得更加复杂

我认为你应该确切地说明你在照顾什么。如果是学习面向对象的概念,你应该使用一种经典的OO语言来学习基本概念,然后再继续学习OOJS。

最近,当我试图学习JavaScript的基于原型的系统时,Packt出版的这本书对我来说是一个非常宝贵的资源,而不让我的传统OO知识(Java等)影响挡路,让事情变得更混乱

对于稍微不太深入的治疗,我也推荐和John Resig's。两者都有关于这个主题的章节。

绝对值得一读:

第5章“继承”涵盖了不同类型的面向对象:

  • 伪经典,通过使用新方法扩展原型对象来模拟类层次结构
  • 原型,不含类,使用原型对象创建具有公共功能的新实例,然后将新功能直接附加到这些新对象
  • 函数式,使用构造函数创建私有作用域并返回一个新对象,该对象对一组具有私有变量特权访问权限的方法进行分组

作者Martin Fowler虽然示例是用Java给出的,但其背后的原则适用于包括JavaScript在内的大多数OO语言。

+1-这是一本更好的书,您可以链接到amazon页面进行重构:改进现有代码的设计,Crockford没有被列为作者之一。Oops。很抱歉。我编辑了我的答案来修复这个链接。这是一本好书,但我发现其中一些例子过于复杂。