JavaScript基础——面向对象

一、面向对象中的概念:

  -一切事物皆对象

  -对象具有封装和继承性

  -信息隐藏

二、类:一般指比较抽象的东西,如:班级、学生。他表示对现实生活中一类具有共同特征的事物的抽象,其实就是创建对象的模板。

  对象:一般指具体的东西,如:1年级1班、张三。他表示具有属性和动作的实体。

    -对象是一种复合数据类型,将多个数值集中在一个单元中,并且允许使用名字来存储这些值。

    -对象是一个无序属性集合,每个属性都有自己的名字和值,存储在对象中已命名的值可以是原始值,也可以是对象。

注意:JavaScript类本身也是对象。


自定义对象:

  创建对象:var style = {};  //创建了一个空的对象。

        var style = {x:1.5,y:5.5,z:0.5}; //用 key:value来书写,key为属性,value为属性的值,属性之间用逗号隔开。

  调用对象的属性:style.x     

      例: var bmw = {name:"宝马",style.x,height:style.y,length:style.z};

         alert(bmw.name + bmw.height);

      例:var people = {name:"alex",age:22,sex:"女",car:bmw};

        alert(people.car.name);

  取得对象属性值的方法:

    - style.x

    - style["x"]


  枚举对象:无方法

    

  静态类:有方法

    

  静态类:直接能调用属性和方法的类。

    with关键字:with(){}  //禁止使用。

  


 非静态类:

  

或者:

  

 构造函数:this关键字,代指实例化后的当前对象。构造函数本身不能直接使用,由于构造函数生成的是一个类而非具体的对象,需要进行实例化成对象后在操作对象。

 类的实例化:重新定义变量,用new关键字生成对象。

用枚举方式创建非静态类:

   

 

  另一种赋值方法:

   

  注意:如果实例化时带有参数,重新赋值会覆盖原有值。


 构造函数:

  例如:

    - var arr = new Array(1,2,3,4);

    - var data = new Date();

  概念:

    - new 运算符的后面必须跟着一个函数调用;

    - new 创建了一个新的没有任何属性的对象,然后调用该函数,并把新的对象作为this关键字的值传递;

    - 设计依赖和new一起使用的函数叫做构造函数;

  作用:

    初始化一个新创建的对象。


 实例属性方法(公开属性和方法):构造函数中this关键字引导的属性和方法,可以在实例中使用和更改。

 私有属性方法:构造函数中直接定义的变量和函数(非this.xxx),只能在构造函数内部使用而不可以在实例中或外部使用。应用所有对象都具有的属性和方法,并且值相同。


 prototype:追加属性/方法,追加的是实例化属性/方法,但是追加是属性方法不能调用私用属性/方法。

    

     一般使用方法:用于追加类方法,不建议追加属性。


 对象属性/方法:

    

    原类中没有相关属性,使用时重新加入的属性,只能当前对象使用,其他实例化对象不能使用。

    和prototype区别,prototype是追加到原来类中的属性或方法,而对象属性/方法只能当前对象使用

          


类属性/方法: 用于类的共有属性。

 


继承:

Student.prototype = new People();

 

原文地址:https://www.cnblogs.com/yz9110/p/8696356.html