我正在努力做到这一点,我是一个全职的前端开发者,我知道我还没有实现这一目标.当我提到OOP技能时,我指的是理解并熟悉继承,多态,封装,抽象等概念.我知道在业余时间通过专注于另一种语言可能更有可能实现我所追求的目标.这是计划,但我真的很感兴趣,听说是否有人通过JavaScript完成了这项工作,以及你是如何做到这一点的.
听到强大的OOP开发人员使用不同的编程语言来了解他们是否与已经成功实现这一目标的开发人员合作,会更好.
万一人们想知道我从哪里走了 -
我已经仔细研究了原型继承的含义以及如何更好地使用它.
我决定花更多时间在业余时间正确学习ruby(可能是任何基于类的语言).
我决定用不同的语言进行实验(不加试验),这样我就不会获得它们的复杂性/确切语法,而是更多地了解它们如何处理OOP.我从Self开始,Scheme就在我的名单旁边.
非常感谢真正有用的答案.
Hoo*_*ing 10
首先,让我先说明JavaScript是我最喜欢的语言之一.我喜欢用它,我喜欢它的力量.
JavaScript肯定会做OOP,一旦你绕过它,它就可以很好地完成OOP.但我不建议通过JavaScript学习OOP,原因如下:
JavaScript使用了Prototypal继承和经典继承的一种混合.在JavaScript中,您不像在经典语言中那样定义类,但仍然存在经典继承的残余 - 如new关键字.对于那些围绕古典OOP的人来说,这非常令人困惑.
JavaScript并不像普通语言(如Java)那样具有私有和公共变量的正常概念.当然,您可以定义公共和私有变量,但这些方法有点深奥.因为JavaScript并不真正公开和私有变量"开箱即用",所以数据隐藏和封装的整个想法自然不适用.
JavaScript当然可以做多态,但它不能通过常规函数重载/覆盖来实现.相反,函数或方法可以采用可变数量的参数,这些参数可以在运行时动态添加.同样,它可以做多态,它只是不像大多数主流和流行语言那样做.
就像我之前说过的,我喜欢JavaScript,我喜欢用它.您当然可以在JavaScript中进行OOP,并且您当然可以通过JavaScript学习OOP来学习OOP.但我认为这是一场艰苦的战斗.
我认为你最好先从Ruby学习OOP,然后再学习JavaScript.Ruby和JavaScript有不同的语法,但语言的力量和"感觉"非常相似.您可以使用这两种语言执行类似的操作,两种语言都具有相似的功能并支持类似的范例.