Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我怎样才能在OOP方面做得更好? 这对你们中的许多人来说可能是个奇怪的问题,我不知道在这个上下文中说“强”OO是否正确,因为OOP>强(>面向对象编程)通常与C++和java等编程语言相关,而不是轻量级编程语言或脚本语言。然而,我的问题属于JavaScript,它也是面向对象的。我确实知道对象、属性、方法、原型和构造函数,但我似乎不知道何时使用对象_Javascript_Oop - Fatal编程技术网

我怎样才能在OOP方面做得更好? 这对你们中的许多人来说可能是个奇怪的问题,我不知道在这个上下文中说“强”OO是否正确,因为OOP>强(>面向对象编程)通常与C++和java等编程语言相关,而不是轻量级编程语言或脚本语言。然而,我的问题属于JavaScript,它也是面向对象的。我确实知道对象、属性、方法、原型和构造函数,但我似乎不知道何时使用对象

我怎样才能在OOP方面做得更好? 这对你们中的许多人来说可能是个奇怪的问题,我不知道在这个上下文中说“强”OO是否正确,因为OOP>强(>面向对象编程)通常与C++和java等编程语言相关,而不是轻量级编程语言或脚本语言。然而,我的问题属于JavaScript,它也是面向对象的。我确实知道对象、属性、方法、原型和构造函数,但我似乎不知道何时使用对象,javascript,oop,Javascript,Oop,在编写web应用程序时,出于某种原因,我从不使用对象。这让我很恼火,因为当我在各种书籍和在线文章中读到关于对象的内容时,对象让一切变得简单了,而且说出来,我讨厌重复自己,这就是为什么我希望知道何时使用对象的原因 我真的想更好地使用对象以及何时使用对象 你能提到一些情况吗?物品会很好的?如果能写下一些你知道的东西,当你对什么时候使用这些该死的对象感到困惑时,你可以回去看看,那就太好了:) 我想要简单的答案来解释为什么和什么时候选择对象。 我也希望你能告诉我,当我在一些特殊情况下,通常适合对象时,我

在编写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