我怎样才能在OOP方面做得更好? 这对你们中的许多人来说可能是个奇怪的问题,我不知道在这个上下文中说“强”OO是否正确,因为OOP>强(>面向对象编程)通常与C++和java等编程语言相关,而不是轻量级编程语言或脚本语言。然而,我的问题属于JavaScript,它也是面向对象的。我确实知道对象、属性、方法、原型和构造函数,但我似乎不知道何时使用对象
在编写web应用程序时,出于某种原因,我从不使用对象。这让我很恼火,因为当我在各种书籍和在线文章中读到关于对象的内容时,对象让一切变得简单了,而且说出来,我讨厌重复自己,这就是为什么我希望知道何时使用对象的原因 我真的想更好地使用对象以及何时使用对象 你能提到一些情况吗?物品会很好的?如果能写下一些你知道的东西,当你对什么时候使用这些该死的对象感到困惑时,你可以回去看看,那就太好了:) 我想要简单的答案来解释为什么和什么时候选择对象。我怎样才能在OOP方面做得更好? 这对你们中的许多人来说可能是个奇怪的问题,我不知道在这个上下文中说“强”OO是否正确,因为OOP>强(>面向对象编程)通常与C++和java等编程语言相关,而不是轻量级编程语言或脚本语言。然而,我的问题属于JavaScript,它也是面向对象的。我确实知道对象、属性、方法、原型和构造函数,但我似乎不知道何时使用对象,javascript,oop,Javascript,Oop,在编写web应用程序时,出于某种原因,我从不使用对象。这让我很恼火,因为当我在各种书籍和在线文章中读到关于对象的内容时,对象让一切变得简单了,而且说出来,我讨厌重复自己,这就是为什么我希望知道何时使用对象的原因 我真的想更好地使用对象以及何时使用对象 你能提到一些情况吗?物品会很好的?如果能写下一些你知道的东西,当你对什么时候使用这些该死的对象感到困惑时,你可以回去看看,那就太好了:) 我想要简单的答案来解释为什么和什么时候选择对象。 我也希望你能告诉我,当我在一些特殊情况下,通常适合对象时,我
我也希望你能告诉我,当我在一些特殊情况下,通常适合对象时,我是否要使用对象,即,每次你想使用对象时,你都要使用对象
我真的希望你能理解我的问题,你会认为我对这个网站有点陌生,对JavaScript新版
谢谢 你可能在没有意识到的情况下使用对象 如果您正在编写与DOM交互的Javascript,则使用的是对象 如果您使用的是任何Javascript框架(jQuery、MooTools等),那么您使用的是对象 当您需要封装一些常用代码以便于重用(在单个应用程序内或跨多个应用程序(如jQuery插件)时,使用对象将非常有用,jQuery插件本身就是对象
要回答你文章标题中的问题…真正提高OOP水平的唯一方法就是练习!阅读和研究这个主题只能让你走到这一步。首先要记住的是,许多简单的Javascript代码实际上不需要定义对象(使用它们是不可避免的,因为DOM提供给你的所有东西都是对象)。不要太惊慌 Javascript的优点之一是它支持很多不同的风格;面向对象、命令式和功能性 使用Javascript的一个缺点是,因为它支持很多不同的风格,所以很难学习其他风格,至少在你被其他东西逼到“a-ha”时刻之前是如此 花时间学习更倾向于强迫您使用OOP的语言(即使有些人认为他们不应该这样做)在这里是有帮助的。C++和java在OOP行中强制使用一个,尽管C++没有(与JavaScript一样有优势和劣势)。 试着想想你计划中的“事情”。其中一些东西已经由对象(DOM提供的对象)建模。有些实际上只是数字和字符串,不值得再编写(尽管学习如何通过原型向这些类型添加功能也是一个好主意)。有些将是比简单类型更复杂的“事物”,自然适合作为对象建模
也要看一下Javascript中的函数编程(例如,将函数作为参数传递给另一个函数是最简单的例子),因为它与OOP之间的交互是Javascript中最强大的元素之一,在基于原型的OOP模型中定义对象的方法是必不可少的。Javascript是学习OOP的糟糕语言。我建议用另一种语言(如Java或C++)学习OOP,然后用Javascript学习面向对象的语法。在那一刻,你拥有了所有的成分 这时,您可以决定是否要在Javascript中为任务使用对象,或者是否只使用函数就足够了
就我个人而言,我主要编写非对象javascript,并将对象留给我觉得任务面向对象的时候。例如,我对拖放脚本使用了面向对象的设计,在这种设计中,您只需使用正确的参数创建一个DragNDrop对象,页面中的项目从那时起就可以拖动,或者当我想简化一些javascript xml处理函数时,我编写了一个包装普通xml对象的对象;如果您的Javascript看起来不是面向对象的,请不要担心。我个人在Javascript中使用OOP的经验是积极的,一旦我想让它做我想做的事情,当然,我通常会将它与jQuery结合使用,因此生成的代码看起来有点。。。。奇怪
function BlogPost(id,title,content)
{
this.id = id;
this.title = title;
this.content = content;
function display()
{
var post = $('<div class="blogpost"></div>');
$(post).append('<h2>' + this.title + '</h2>');
$(post).append('<p>' + this.content + '</p>');
var deleteButton = $('<span class="deletePost">delete</span>')
$(post).append(deleteButton);
$(deleteButton).click(this.delete)
$('#postcontainer').append(post);
}
function delete()
{
$.post('some/xhr/handeler',{id:this.id});
}
}
函数BlogPost(id、标题、内容)
{
this.id=id;
this.title=标题;
this.content=内容;
函数显示()
{
var post=$('');
$(post.append(“”+this.title+“”);
$(post.append(“”+this.content+”);
var deleteButton=$('delete')
$(post).append(删除按钮);
$(删除按钮)。单击(this.delete)
$(“#postcontainer”).append(post);
}
函数delete()
{
$.post('some/xhr/handler',{id:this.id});
}
}
这是一个快速(未经测试)类,可用于将blogposts动态添加到id为“postcontainer”的div中,并处理对删除按钮的单击。首先,您不需要使用对象来避免重复。如果您需要在代码中的两个点上执行相同的操作,您可以编写一个普通的非OOP函数来执行该操作,并将其称为twi