javascript和java中“对象”概念的比较
java是纯oop语言,而javascript是基于对象的语言,具有一定的oop特性。
除了在封装、继承、多态等oop特性方面的不同,java和javascript在对“对象”这一概念的理解上也非常不同。
对象的较普遍定义是:具有状态(属性)和行为(方法)的逻辑实体。这个应该是任何oop语言或具有oop特性的语言中通用的定义。
但是在具体实现方面,每种语言有其各自的特点。
javascript中,对象定义为“属性的无序集合”,它将方法也作为对象的属性来理解,这一点与java不同,而且正是由于其将对象视为一种“无序的数据集合”,所以在javascript中定义对象显得比较随意,尤其是在定义对象的方法时,完全跟定义其他属性的方式相同,只要将属性名指向一个函数就可以了。
而在java中,对象的定义主要还是与通用的定义一样,即“对象是具有属性和方法的逻辑实体”,java中的属性和方法有各自的内涵,是区分的。
以上是我的理解,但是总感觉不够深入,可不可以将java中的对象也理解为“属性的无序集合”呢?感觉这种观点很有吸引力,但是java中的理解也很不错,两者深层次有没有统一性呢?或者,对“对象”的理解只是体现了组织代码的不同方式呢?
有点混乱,希望既学过java又学过javascript的前辈多多留言,充分讨论。
------解决方案--------------------java与javascript没一点关系。。。。。
http://baike.baidu.com/view/16168.htm
1.JavaScript是一种动态、弱类型、基于原型的语言,通过浏览器可以直接执行;而Java是面向对象的编程语言,必须先进行编绎和连接等动作才可执行。
2.JavaScript编写在HTML文件中,直接查看网页的原始码,就可以看到JavaScript程式,所以没有保护,任何人都可以透过HTML文件复制程式;而Java应用在网页的程式称为Java Applet(Applet是[小程序]的意思),是和HTML文件分开的。
3.JavaScript的结构较为自由松散,而Java和正统的编程语言一样,结构较为严谨。 4.JavaScript不具有读写档案及网络控制等功能,Java则提供了这些功能,但是JavaScript在网页内容的控制和互动性方面,比较方便快捷的。
5.javascript多运行于客户端,而java多运行于服务器端。
------解决方案--------------------这个解释很多,一般js书籍开始都会介绍这两者的区别的
------解决方案--------------------JavaScript是一种动态、弱类型
语法更灵活,也更容易出错
------解决方案--------------------概念上我觉得javascript无论是对象还是继承都是以对象为单位。
------解决方案--------------------呵呵,新手报到,请多指教
------解决方案--------------------看了楼主的一些帖子,是个很有探源溯本精神的一个人,赞一个~
java我不懂,asp.net用了不少,我也是当类库用,没用直接写什么面向对象,所以说不出来什么。
至于javascript对象,我的理解就是一个命名的闭包。
闭包,就是一个单独的变量作用域。
属性和方法在javascript里其实几乎没有区分,都是一个变量而已。
比如 function fo(){}
等同于var fo=function(){}
------解决方案--------------------all is object
------解决方案--------------------对象概念我觉得好像很多语言都是差不多,实现机制上可能会有数学理论支持吧