OOP面向对象程序设计

时间:2020-12-15 04:01:09

1、对象:程序中描述现实中一个物体的属性和功能的结构

面向对象的程序设计,即为定义相应对象的属性,实现相应的功能。一个对象专门代表现实中的一个物体。

*封装事物的属性和功能的结构。

例如 我们的手机:属性:

          屏幕大小:5.5
          处理器: A8
          运行内存:2G
          存储:64G
          通讯录:["小张":12312312345,
              "小美":32132154321,
              "小贾":23423423456]    

        功能:打电话(电话号码){}
           发短信(电话号码,msg){}

2、如何创建对象

(1)、直接量创建

var obj={

    属性名1:属性值1,

    属性名2:属性值2,

    方法名1=function(){……},

    方法名2=function(){……}

}

使用:仅创建一个单独的对象时

注意:js底层,所有对象都是用hash数组存储的!

(2)、使用构造函数创建多个统一的结构对象,只需一次定义结构,即可反复创建相同结构的对象

如何使用构造函数:2步:
Step1: 定义构造函数
function 类型名(属性参数1,属性参数2,...){
                  this.属性名1=参数1;
                  this.属性名2=参数2;
                  this.方法名=function(){...}
}
Step2: 调用构造函数函数创建对象!

var Obj=new 类型名(属性参数1,属性参数2);

注意:this指正在创建的对象

new 构造函数的内存现象

    1. new创建空对象
    2. 调用构造函数向新对象中添加属性和方法
    3. 设置新对象的__proto__属性指向构造函数的原型对象
    4. 返回新对象的地址给调用者

(3)、先创建空对象,再设置属性
var obj=new Object(); //创建空对象
obj.属性1=值1;
obj.属性2=值2;
obj.方法=function(){...}
使用:创建对象时,暂时不知道对象中的结构
可先创建空对象,之后逐渐追加属性和方法(一般不使用),

固定套路:遍历对象中所有属性和方法: for in结构

3、判断对象中是否存在指定属性

(1)、 "属性名" in obj:
如果obj是原始类型变量,可new空包装类型对象,再检测
(2) 、 if(obj.方法名===undefined): 属性名不存在
专门验证方法名是否存在——使用最频繁的!
可简写为if(obj.方法名)