JavaScript:面向对象

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

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

  • 像不像,你说了不算

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

       实例:类的一个具体对象。其拥有的属性和方法与类完全相同。


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

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

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

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


  • 类和构造函数

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

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


  •  继承   

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


小结:

   


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值