对于你们许多人来说,这可能是一个奇怪的问题,我实际上并不知道在这种情况下说OOP是否正确,因为OOP(面向对象编程)通常与C++和Java等编程语言相关联,不是轻量级编程语言或脚本语言.然而,我的问题是JavaScript类,它也是面向对象的.我确实知道对象,属性,方法,原型和构造函数,我似乎无法在使用对象时进入脑海.
当我编写我的Web应用程序时,由于某种原因,我从不使用对象.这让我很烦,因为当我读到各种书籍和在线文章中的对象时,对象使一切变得如此简单,只是把它放在那里,我讨厌重复自己,这就是为什么我希望我知道何时使用对象.
我真的想要更好地使用对象以及何时使用对象.
你能不能提一下几个对象会不会好的情况?如果您对使用这些darn对象时感到困惑,那么写下你知道可以回去查看的东西真的很不错:)
我想要简单的解答,解释为什么以及何时更喜欢对象.
我还想告诉我,如果我在一些特殊情况下使用对象,一般适合对象,即每次你想_________然后你使用一个对象......
我真的希望你能理解我的问题,你会认为我对这个网站有点新手并且是JavaScript新手
Jus*_*ner 10
您可能甚至没有意识到它就使用对象.
如果您正在编写与DOM交互的Javascript,那么您正在使用对象.
如果您正在使用任何Javascript框架(jQuery,MooTools等),那么您正在使用对象.
当您需要封装一些常用代码时,使用对象将非常有用,以便可以轻松地重复使用(在单个应用程序内或跨多个应用程序,如jQuery插件......它们本身就是对象).
并回答你帖子标题中的问题......真正在OOP上变得更好的唯一方法就是练习!阅读和研究这个主题只能让你到目前为止.
首先,您不需要使用对象来避免重复自己.如果你需要在代码中的两个点做同样的事情,你可以写一个简单的vanilla非OOP函数来做这个并调用它两次.
为了总结OOP的优点而不在这里写书,OOP基本上为你做了三件事:
将相关数据组合在一起 非OOP程序通常在主程序中浮动一大堆变量,这些变量只是松散相关.使用OOP,您可以将相关变量放入对象中.
将功能与数据相关联.通过将函数放在一个对象中,操作数据(纯粹主义者会说它们是"成员"而不是"函数"),你就会清楚地告诉读者这些是一起的.
通过组合#1和#2,您可以隐藏其他对象的实现细节.您可以为类创建"公共接口",其他对象应调用的函数集以及表示此类所执行的逻辑事物,然后可以隐藏所需的任何其他函数.(在某些语言中比在其他语言中更明确,但这不是重点.)
何时到OOP呢?每当你有几个逻辑上合并在一起的数据时,创建一个类来保存它们是有意义的.像X和Y坐标; 或客户名称,地址和邮政编码; 或相位器范围和相位器功耗; 管他呢.
只要您具有逻辑上对此相关数据进行操作的函数,请将它们放入包含数据的类中.如"大写客户名称","计算此点与原点的距离"等.
如何以及何时使用继承更复杂.我会再把它留下来.
首先要记住的是,许多简单的Javascript代码确实不需要定义对象(使用它们是不可避免的,因为DOM给你的所有东西都是对象).不要太恐慌.
Javascript的一个好处是它支持许多不同的样式; OOP,命令性和功能性.
使用Javascript的一个坏处是,因为它支持很多不同的风格,所以很难学习另一种风格,至少在你被其他东西强迫到"a-ha"时刻之前.
花时间用更倾向于强迫你进入OOP的语言(即使有些人认为他们不应该这样做)在这里是有用的.C#和Java强制一个沿着OOP线,虽然C++没有(这里有与Javascript相同的优点和缺点).
试着考虑你的程序中的"事物".其中一些东西已经被对象建模(DOM给你的东西).有些人真的只是数字和字符串而不值得超越(尽管学习如何通过原型向这些类型添加功能也是一个好主意).有些将是"事物"比简单类型更复杂,并且自然适合作为对象建模.
还要看一下Javascript中的函数式编程(例如,将函数作为参数传递给另一个函数是最简单的例子),因为它和OOP之间的交互是Javascript中最强大的元素之一,并且在定义给定对象的方法时必不可少它具有基于原型的OOP模型.