• 面向对象OOP


    什么是: 程序中都是先用对象来定义数据和功能,再按照逻辑的需要,访问对象中的数据和功能。
    为什么: 和现实中人的想法非常接近。

     什么是对象: 

              内存中同时存储多个数据和功能的存储空间
          描述现实中一个具体事物的属性和功能的程序结构
              事物的属性,会成为对象中的属性
          事物的功能,会成为对象中的方法

    何时: 今后开始写程序前,都要先用对象,描述好要操作的事物的属性和功能,再按需使用对象的功能,访问对象的属性
    如何: 面向对象三大特点: 封装,继承,多态

         封装: 将一个具体事物的属性和功能集中定义在一个对象中
          创建自定义对象: ——封装 3种:

    1. 使用对象直接量: 
                  var obj={
                      属性名: 属性值,
                             ... : ... ,
                      方法名: function(){... this.属性名 ...},
                             ... : ... ,
                  }
              强调: 对象自己的方法,要访问自己的属性,必须用this.属性名.
              this->正在调用函数的当前对象自己
     2. 使用new: 2步:  
              var obj=new Object(); //创建一个空对象
              //向空对象中添加属性和方法
              obj.属性名=属性值;
              obj.方法名=function(){...this.属性名...};
              
         对象的本质: js中一切对象的底层都是关联数组
                   每个属性/方法都是关联数组中的元素
                   属性名/方法名是key,属性值/函数对象是value
    
          问题: 一次只能创建一个对象
      3. 解决: 用构造函数: 
              什么是构造函数: 专门描述一类对象统一结构的函数
              何时: 今后只要反复创建多个相同结构的对象时,都要先定义构造函数
              为什么: 复用对象的结构代码
              如何: 2步: 
                1. 定义构造函数
                    function 类型名(属性参数列表){
                         this.属性名=属性参数值;
                                   ...=...;
                         this.方法名=function(){ ... this.属性名 ...  }
                    }
                2. 用new调用构造函数,创建并装修新对象
                    var obj=new 类型名(属性值列表);
                         创建一个指定“类型”的对象
                         用new调用指定"类型"的构造函数来创建对象
                  new: 4件事: 
                    1. 创建新的空对象
                    2. 让新对象继承构造函数的原型对象
                    3. 用新对象去调用构造函数
                          向新对象中添加构造函数规定的属性
                          将属性参数的值,保存到新对象的新属性中
                          向新对象中添加构造函数规定的方法
                    4. 将新对象的地址保存在变量
    
          按需访问对象的属性,调用对象的方法:  
             访问对象的属性: obj.属性名   用法和普通的变量完全一样
                    属性就是保存在对象中的一个变量
             调用对象的方法: obj.方法名() 用法和普通的函数完全一样
                强调: 方法中的this,默认指.前的对象
    
          构造函数的问题: 只能复用代码,不能节约内存
    继承: 父对象的成员,子对象不用重复创建,也可直接使用
          为什么: 即节约内存,又代码重用
          何时: 只要一类子对象,需要相同的属性或功能时,都要将相同的属性和功能仅在父对象中定义一次即可
          如何: 
            原型对象: 集中存储同一类型的子对象所需的所有共有属性和方法的父对象
  • 相关阅读:
    linux命令ss
    linux命令ss
    prometheus + consul 实现服务自动发现
    ToolStripMenuItem.Visible 获取值不正确的解决方法 清风
    Flowportal 调用用户代码发生了错误:试图提升事务时失败。
    Webpack的使用
    对象存储
    SpringBoot整合阿里云短信服务
    微服务中服务间通信
    单点登录SSO(Single Sign On)
  • 原文地址:https://www.cnblogs.com/weiyf/p/8778368.html
Copyright © 2020-2023  润新知