Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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
Javascript中的Java面向对象概念_Java_Javascript_Gwt - Fatal编程技术网

Javascript中的Java面向对象概念

Javascript中的Java面向对象概念,java,javascript,gwt,Java,Javascript,Gwt,我已经使用Java很长时间了,有相当一段时间我使用GWT(GoogleWebToolkit)进行web开发。它的美妙之处在于,我有了我的Java面向对象的结构,并且不会担心它如何被翻译成GWT——让谷歌来处理它吧。我对Javascript的了解已经足够了,但还没有达到可以用它进行大量web开发的程度。 后来我决定,我必须对Javascript有更深入、更彻底的理解,这是一个真正的过山车——就在我认为我得到了一些东西,一些东西来了,证明我错了——我只是误解了 还有什么地方比stackoverflo

我已经使用Java很长时间了,有相当一段时间我使用GWT(GoogleWebToolkit)进行web开发。它的美妙之处在于,我有了我的Java面向对象的结构,并且不会担心它如何被翻译成GWT——让谷歌来处理它吧。我对Javascript的了解已经足够了,但还没有达到可以用它进行大量web开发的程度。 后来我决定,我必须对Javascript有更深入、更彻底的理解,这是一个真正的过山车——就在我认为我得到了一些东西,一些东西来了,证明我错了——我只是误解了

还有什么地方比stackoverflow更能表达我的担忧:我请求提供一些资源和指向Javascript的指针,这些Javascript相当于以下一些Java概念:

Class
instance of a class - object
Member variables
Getters
Setters
Abstract Class
Interface
Inheritance
Access Modifiers
Constructors

我知道其中一些概念,但正如我所说的,我相信我在概念上有一些困难。如果有人能指出一位真正的javascript大师试图在这里指出这些概念,我会非常高兴

我认为您主要需要了解Javascript是一种纯OOP语言,但它没有类!。。。对于Java程序员来说,这是一个相当令人震惊的问题,需要一段时间才能理解它,但这是一个非常强大的范例

这段视频来自Douglas Crockford,一个帮助创建Javascript的人,对新的Javascript程序员来说非常棒


好吧,JavaScript的基本经验法则是,它几乎可以让你做任何事情。没有访问修饰符。因为JavaScript并没有太多的阻止,像抽象类这样的东西就没有意义了。您总是可以实例化它

模糊的类行为来自对象,您可以使用原型获得类似构造函数的行为

成员变量类似但没有类型,也可以包含函数和数据

在JavaScript中,您需要个人规范和强大的代码约定来模拟这些东西,但该语言对您一点帮助都没有。它是超柔的,这意味着它不会妨碍你的方式,但它也给你足够的绳子来吊死自己

最好把它当作一种完全不同的语言。不要试图将它与Java联系起来,因为它在许多方面都有根本的不同

名字是其中最相关的部分,这会造成很多混乱

解释了如何很好地模拟这些面向对象的功能。我认为每个人都应该阅读他的书,并解释如何最大限度地利用JavaScript经常令人困惑的特性


尝试his,以获得通过闭包获取私有类方法和属性的基本方法。此外,我还将向您展示如何实现经典继承。

我一直在追求与您相同的目标,但我不得不到处搜集知识

stackoverflow上到处都是关于所有这些主题的优秀帖子,我还建议大家看看jquery等流行库的来源。查看此源代码查看器

这是伟大的John Resig的精彩互动教程:

以下是一些非常好的SO帖子,帮助我更好地理解JS:











下面是一些关于javascript的怪癖和你不知道的东西的帖子:










我可以想出一些参考资料来回答这些问题,包括明确指出JavaScript是一种松散类型的动态语言,而Java是一种强类型的静态语言。我觉得这就是你所寻求的直接类比

通过快速阅读网站上的“”部分,列出的前五个项目中的许多一般性问题都会有所启发。(类、类的实例-对象、成员变量、getter、setter)


道格拉斯·克罗克福德(Douglas Crockford)很好地解释了第二组项目,他写了O'Reilly的书《Javascript:好的部分》以及JSLint代码工具。(抽象类、接口、继承、访问修饰符、构造函数)Crockford在一个页面中描述了如何在Java和JavaScript之间进行非常直接的类比

有关JavaScript变量作用域的一些信息,请参阅本文。 它解释了为对象原型创建公共、受保护和私有变量的基础知识。
JavaScript是纯OO语言,但它缺少一些基于类的OOP语言(如Java或C)的概念# 然而,好消息是,ECMA的好心人正在努力将抽象、类、名称空间、继承、属性等OO概念带到这件事上。。。进入


我的震惊与您尝试使用Javascript时的震惊非常相似。道格拉斯·克罗克福德(Douglas Crockford)及其网站的优秀部分已经证明对我有巨大的帮助

这是一个好问题,但我投票决定结束,因为它的范围非常广泛。问题是,这些概念中有一半在JS中不存在,部分原因是原型OOP,部分原因是动态类型。你在翻译个人概念方面不会走得太远。我投票反对结束,因为他不想让我们解释这些东西。他只想要好资源的链接。我正在学习的课程的前两章解释了其中的一些概念,特别是范围、继承和构造函数。JavaScript不是一种纯粹的OOP语言,但它提供了一些新的特性。