您的位置:首页 > Web前端 > JavaScript

JavaScript:面向对象

2016-03-19 13:58 381 查看
         几乎身边的所有人都说,JavaScript和Java很像,学习了Java再来学习JavaScript时,发现这两种表面相似的语言其实有很多不同,现在就来说一说JavaScript面向对象,相同点就不用说了,这里只说说不同。

此面向对象非彼面向对象
面向对象的程序设计语言,总的来说可以分为两种:基于类的面向对象语言,基于原型的面向对象语言,JavaScript属于后者,而Java,C++就属于前者。

像不像,你说了不算

概念上的区别
基于类的面向对象(以Java为例)
         类:Java和C++或者其他面向对象语言都有类的概念,类被用来定义一个对象的所有属性和方法的集合 。例如:一个汽车类可以用来描述所有汽车。这里“类”就是一种类别。
       实例:类的一个具体对象。其拥有的属性和方法与类完全相同。

       2.基于原型的面向对象(JavaScript为例)

JavaScript没有类和实例这两个基本概念,不过不得不提JavaScript和Java都说“一切皆是对象”。在基于原型的面向对象语言中,有完全不同的概念

—— 原型对象”。(ps:ECMAScript中没有类的概念,原型对象的概念也是ECMAScript中的)

        原型对象就像一个模板,通过原型对象可以创建其它新的对象。模板的作用只是初始化对象中的属性和方法,在这一方面,原型对象与类的概念有类似之处,但是使用原型对象创建的新对象还可以指定自己的属性方法,而使用类创建的实例只能拥有类中的属性和方法,不能有自己的 属性和方法。还有就是,一个对象还可以是另一个对象的原型对象,另一个对象可以共享该对象的原型对象的属性和方法。

类和构造函数

Java中创建一个类,在类中添加属性和方法,创建完之后,用new操作符创建一个类的实例,该实例拥有的属性和方法与类完全相同。

在JavaScript中因为没有类,可以定义一个构造函数,在构造函数中定义属性和方法,用new 操作符通过构造函数创建一个对象,且通过构造函数初始化属性和方法。

 继承   

 在Java中子类继承父类的属性和方法,同时可以定义自己的属性和方法,同时也通过定义相同的属性和方法来覆盖父类原有的值。

小结:



   


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: