JavaScript容易误解的概念

       JavaScript是一个非常容易了解错误和混淆的技术、很多初学者容易对其概念进行误解、在看完月影的王者归来后觉得对本主题有用的知识点摘录下来希望对有需要的朋友有所帮助。

  1.Java和JavaScript的关系

      从字面上来看、JavaScript中前缀JAVA似乎就暗示JavaScript和JAVA之间的关系、事实上两者是完全不同的,JAVA和javascript语法非常相似、就类似于java和C语法类型一样、其javascript的历史可以追溯到一个名为Cmm的语言、javascript的一些特性就来源于其中、此外在javascript语言之前,浏览器的环境中也是有脚本语言的,但是是第三方的一种脚本、非常怪异、后来也被加入到了javascript的阵营,逐渐变成了javascript的一种方言。

     虽然说javascript和java完全不相干,但是事实上两者是非常好的搭档,javascript可以用来控制浏览器的行为和内容、但是却不能绘图和连接(通过模拟是可以的),而java虽然不能在总体上控制浏览器,但是却可以绘图、执行连接和多线程。客户端的javascript可以嵌入到网页的javaapplet进行交互。

2.披着C外衣的Lisp  

      JavaScript的C风格的语法,包括大客户和复杂的for语句,看起来像是一个普通的过程式语法、这是一个误导,因为JavaScript和函数式语言,如Lisp和Scheme有更多的共同之处,它用数组代替了列表,用对象代替了属性列表,函数是第一型的,而且有闭包。

3.JavaScript是否面向对象

      JavaScript是否面向对象?它拥有对象,可以包含数据和处理数据的方法。对象也可以包含其它对象,它没有基于类的继承、但是可以基于原型的继承。两个建立对象系统的方法是通过继承和聚合,JavaScript两者都有,但是它的动态性质可以让它的动态系统具备超越“聚合”的能力。

     当然也有些人说JavaScript不是真正的面向对象,因为他不提供信息的隐藏,也就是说对象不能有私有变量和私有方法,所以成员都是公共的,但是这一些都被人随后一一证明可以。

     说JavaScript是一种基于对象的语言,是一种正确而略显保守的判断,而说JavaScript不是面向对象的,在我看来是错误的,事实上有充足的理由证明JavaScript是一种面向对象的语言,只是与传统的Class-based oo(基于类的面向对象)相比,JavaScript有它与众不同的地方,这种独特性我们称之为基于原型的面向对象。

 

原文地址:https://www.cnblogs.com/tanliang/p/2095428.html