js面向对象的基础懂得

js面向对象的基础理解

一,在进行javascript的练习过程中,我们会一直重复修改代码,不断强化思想,训练自己的思维能力。从最初的for循环修改成foreach,再到调用函数,这都是在用面向过程的思想在编程,现在我们又要学习将面向过程编程改成面向对象编程,所以我们来学习一下面向对象编程的一些基础知识,好好理解,然后学会应用。

二,面向对象基础:

    1.类和对象

    在之前学习的JavaScript基础里面,我们初步了解了 对象 的概念. JavaScript中的对象是一个名称与值配对的集合.这种名称与值的配对被称为属性.如此看来,JavaScript对象可以定义为属性的集合.

    1>.对象的字面量表达式,通常称为JSON(JavaScript Object Notation)

    对象 = { 属性名 : 属性值, 属性名 : 属性值, ┅ ┅ }

    其中,属性名可以是标识符,字符串,或是数值.属性值可以是任意的数据值,对象或者函数.

      具体例子如:

{ x: 2, y: 1 }          //属性名是标示符,只有JSON里可以使用,等价于字符串
{ "x": 2, "y": 1 }      //属性名是字符串
{ 'x': 2, 'y': 1 }      //属性名是字符串
{ 2: 1, 1: 2}           //属性名是数值
{ x: 2, status: true, info: { name: "Tom", age: 23, student: false} }   //属性值包含对象
{ x: 2, say_hello: function(){ console.log( "Hello!" ) } }              //属性值包含函数
//像上面这种没有函数名的函数叫做"匿名函数"

    2>.对象的new表达式

    JavaScript中new表达式的作用是创建一个对象,我们一般称通过new表达式创建的对象为 实例   对象(简称实例).可以像下面这样使用该表达式.

var robot = new Object();                       //生成一个实例对象robot
robot.name = "Cat";                             //定义实例对象robot的name属性,并赋值
robot.age = 1;                                  
robot.info = {height: 120, weight: 40}              
robot.say_hello = function(){ console.log("Hello!") };

     robot.say_hello是一个函数,这说明函数里面的内容是共享的,不会变,用的时候直接调用就可以。

     对实例化的理解:

     用new创建的对象,需要一个模板,就像工业铸造的模具一样。每new一次,便铸造了一个新的实例。 这个对象模板被称之为 类。这个new的过程叫做实例化。

是通过new表达式,由类生成对象的用法。

    **注意:上面代码中,new 表达式后面的 Object就是类名和前面用字面量表达式生成一个对象一样,通过new表达式生成的实例对象也可以定我们需要的属性。两种对象,在使用方式上没有区别。由于一般情况下,通过字面量来定义生成一个对象更简单和直接,所以经常使用字面定义的方法来临时生成对象。

2.对象的函数

1>.方法调用(调用对象的函数属性)对象的函数属性有一种区别于一般函数的名称,叫做方法,相应的调用对象的函数属性时就叫做方法的调用。

下面我们来看定义在对象内部的函数的调用方法。

//通过字面量定义的对象
var robot = { 
                        x   : 2, 
                say_hello   : function(){ console.log( "Hello!" ); }
            };
robot.say_hello();            //调用对象的方法

 输出结果为:Hello!

 

然后通过new表达式生成的对象

var robot = new Object();
robot.say_hello = function(){ console.log( "Hello!" ); };
robot.say_hello();            //调用对象的方法

输出结果为:Hello!

 

从上面可以看出无论以何种方法生成的对象,其结果是一样的.

2>构造函数调用(相当于类的用法,用来生成对象)

在 对象的new表达式 内容的代码里:

var robot = new Object(); //生成一个对象robot

*注意:

 a.这里的Object很明显是一个函数,类是一个抽象的概念,像是一个人的灵魂,当我们创建一个类之后,想要实例化,就必须要有一个具体的函数调用。那么这个具体的函数被称之为构造函数。

b.Object()是JavaScript内置对象Object的构造函数。 当然我们也可以定义自己类,自己的构造函数,并用来生成对象

三.好好理解上面的定义和例子,反复练习,学会应用。面向对象现在对于我们来讲门比较难,因为一直使用面向过程的思想来编程,要反复练习,学会面向对象编程。