HTML5技术

JavaScript面向对象(OOP) - 姐姐jy

字号+ 作者:H5之家 来源:H5之家 2017-10-15 08:12 我要评论( )

前 言 JRedu 面向对象程序设计(简称OOP)是现在最流行的程序设计方法,这种方法有别于基于过程的程序设计方法。在写面向对象的WEB应用程序方面JavaScript是一种很好的选择.它能支持OOP.因为它通过原型支持继承的方式和通过属性和方法的方式一样好.很多开发

  前  言

JRedu

       面向对象程序设计(简称OOP)是现在最流行的程序设计方法,这种方法有别于基于过程的程序设计方法。在写面向对象的WEB应用程序方面JavaScript是一种很好的选择.它能支持OOP.因为它通过原型支持继承的方式和通过属性和方法的方式一样好.很多开发者试图抛弃JS,试着用C#或JAVA仅是因为JS不是他认为合适的面向对象的语言.许多人还没有认识到javascript支持继承.当你写面向对象的代码时.它能给你很强大的能量.你也可以使用它写出可复用,可封装的代码.

 

一、什么是面向对象编程(OOP)?

        在了解什么是面向对象编程之前,我们来看看语言的分类。总体可以分为三类:面向机器、面向过程还有面向对象。面向对象的语言主要有C++、Java、PHP等。

1)面向过程:面向过程专注于如何去解决一个问题的过程步骤。编程特点是由一个个函数去实现每一步的过程步骤,没有类和对象的概念。
2)面向对象:专注于由哪一个对象来解决这个问题,编程特点是出现了一个类,从类中拿到对象,由这个对象去解决具体问题。
         对于调用者来说,面向过程需要调用者自己去实现各种函数。而面向对象,只需要告诉调用者,对象中具体方法的功能,而不需要调用者了解方法中的实现细节。

2面向对象的三大特征

      这个对于计算机专业的人来说,相信大家已经很熟悉啦,那我就再说一遍吧~

      面向对象的三大特征是继承、封装、多态。JS可以模拟实现继承和封装,但是无法模拟实现多态,所以我们说JS是一门基于对象的语言,而非是面向对象的语言。

3类和对象

 

1、类:一类具有相同特征(属性)和行为(方法)的集合。
比如,人类具有身高、体重等属性,吃饭、大笑等行为,所以,我们可以把人划分为一类。


2、对象:从类中,拿出具有确定属性值和方法的个体。
比如,张三-->属性:身高180体重180 方法:说话-->我叫张三,身高180

3、类和对象的关系:
①类是抽象的,对象是具体的(类是对象的抽象化,对象是类的具体化)

②类是一个抽象的概念,只能说类有属性和方法,但是不能给属性赋具体的。比如,人类有姓名,但是不能说人类的姓名叫什么。
   对象是一个具体的个例,是将类中的属性进行具体赋值而来的个体。
比如,张三是一个人类的个体。可以说张三的姓名叫张三。也就是张三对人类的每一个属性进行了具体的赋值,那么张三就是由人类产生的一个对象。

4、使用类和对象的步骤:

1)创建一个类(构造函数):类名必须使用大驼峰法则。即每个单词首字母都要大写

function 类名(属性1){ this.属性1=属性1; this.方法=function(){ //方法中要调用自身属性,必须使用this.属性 } }

2)通过类实例化(new)出一个对象。

var obj=new 类名(属性1的具体值); obj.属性; 调用属性 obj.方法; 调用方法

3)注意事项
①通过类名,new出一个对象的过程,叫做"类的实例化"。
②类中的this,会在实例化的时候,指向新new出的对象。
所以,this.属性 this.方法实际上是将属性和方法绑定在即将new出的对象上面。
③在类中,要调用自身属性,必须使用this.属性名。如果直接使用变量名,则无法访问对应的属性。

function Person(name,age){ this.name=name; this.age=age; this.say=function(content){ //在类中,访问类自身的属性,必须使用this.属性调用。 alert("我叫"+this.name+",今年"+this.age+"岁,我说了一句话:"+content); } } var zhangsan=new Person("姐姐",18); zhangsan.say("你好呀");

④类名必须使用大驼峰法则,注意与普通函数区分。

4面向对象的两个重要属性

1)constructor:返回当前对象的构造函数。
>>>zhangsan.constructor==Person;  ( true)
2)instanceof:检测一个对象是不是一个类的实例;
>>>lisi instanceof Person              √ lisi是通过Person类new出的
>>>lisi instanceof Object              √ 所有对象都是Object的实例
>>>Person instanceof Object        √ 函数本身也是对象

5广义对象与狭义对象

1)狭义对象:只有属性和方法,除此之外没有任何其他内容。

 

obj=new Object(); //用new声明的对象

 

2)广义对象:除了用字面量声明的基本数据类型之外,JS中万物皆对象。换句话说,只要能添加属性和方法的变量,都可以称为对象。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 一文为你详细讲解对象映射库【AutoMapper】所支持场景 - Jeffcky

    一文为你详细讲解对象映射库【AutoMapper】所支持场景 - Jeffcky

    2017-10-08 12:03

  • 【java】关于java类和对象,你想知道的在这里! - 外婆的彭湖湾

    【java】关于java类和对象,你想知道的在这里! - 外婆的彭湖湾

    2017-09-17 14:05

  • this的用法 – JavaScript深入浅出(二) - OkayChen

    this的用法 – JavaScript深入浅出(二) - OkayChen

    2017-09-15 12:00

  • JavaScript: 使用 atan2 来绘制 箭头 和 曲线 - 救火队长

    JavaScript: 使用 atan2 来绘制 箭头 和 曲线 - 救火队长

    2017-09-14 08:04

网友点评
c