日期:2014-05-20  浏览次数:20632 次

javascript和java中“对象”概念的比较
java是纯oop语言,而javascript是基于对象的语言,具有一定的oop特性。
除了在封装、继承、多态等oop特性方面的不同,java和javascript在对“对象”这一概念的理解上也非常不同。
对象的较普遍定义是:具有状态(属性)和行为(方法)的逻辑实体。这个应该是任何oop语言或具有oop特性的语言中通用的定义。
但是在具体实现方面,每种语言有其各自的特点。
javascript中,对象定义为“属性的无序集合”,它将方法也作为对象的属性来理解,这一点与java不同,而且正是由于其将对象视为一种“无序的数据集合”,所以在javascript中定义对象显得比较随意,尤其是在定义对象的方法时,完全跟定义其他属性的方式相同,只要将属性名指向一个函数就可以了。
而在java中,对象的定义主要还是与通用的定义一样,即“对象是具有属性和方法的逻辑实体”,java中的属性和方法有各自的内涵,是区分的。
以上是我的理解,但是总感觉不够深入,可不可以将java中的对象也理解为“属性的无序集合”呢?感觉这种观点很有吸引力,但是java中的理解也很不错,两者深层次有没有统一性呢?或者,对“对象”的理解只是体现了组织代码的不同方式呢?
有点混乱,希望既学过java又学过javascript的前辈多多留言,充分讨论。

------解决方案--------------------
javascript 和 java 风马牛不相及,没啥好比的,javascript是动态语言,运行时态可以变化的,java是静态编译型语言,完全不同的东东。
------解决方案--------------------
有没有必要啊 。。 这么学你不累吗 。。 

再说这真没什么比较的 钻牛角尖而已!
------解决方案--------------------
对象就是对象啊,所有面向对象语言都差不多呀,类、方法、属性什么的。要想知道底层怎么处理,看底层源码去吧,但是所有OOP语言都一样的,大同小异。别费劲了,我劝你。