• 面向对象


    面向对象的目的就是生成对象

    生成对象的方式

      1、单例模式

      2、类的实例

      3、工厂模式

      4、构造函数   扮演三种角色   普通函数     普通对象    类

    构造函数的三个特点:  函数名首字母大写       里面的属性前面要加this       调用的时候要用new

    工厂模式,生成的对象必须要返回

    构造函数不用return     ,构造函数默认return的是this     在构造函数内的this就是实例对象

    构造函数如果人为return的不是对象,直接忽略,如果人为return的是对象,就取代this。

    工厂模式生成的实例对象的__proto__直接指向object的原型

    构造函数生成的实例对象的__proto__指向他父类的原型 ,然后父类的原型上的__proto__指向基类object的原型

    每个类和实例之间都是独立的个体,他们之间的属性互不干扰,是不等的,如果实例和实例之间的属性相等,则这个属性必须是父类的原型上的属性,父类原型的属性是继承的,可共享

    原型链:

      在操作对象.属性 的时候,首先看这个属性是不是私有的,私有的有就直接使用,私有的没有就找公有的

    公有的有就使用,没有就通过__proto__找它父类的原型上有没有,直到基类object,如果object没有就是

    undefined。这种查找机制叫原型链。

    实例的__proto__上的属性

        instanceof  ()    判断对象是不是这个类的实例对象

     isPrototypeOf()  判断实例对象是否是父类的原型

     getPrototypeOf()     获取实例对象的原型

     hasOwnProperty()     判断一个属性是不是自身(私有)的属性

     In  判断一个属性是不是这个对象上的不管私有的还是公有的

    实例对象的原型就是他父类的原型

    this的指向问题

      1、函数外的this指向window

      2、函数内的this指向行为发生的主体   主体怎么找    跟函数调用有关,看函数前面有没有.,有.就是.前面的对象,没有就是window

      3、定时器的this指向window   ,自执行函数的this指向window

      4、构造函数和原型上的this指向实例对象

    改变this的方法

      1、提前将this赋值

      2、call 、apply       执行是一样的都是将前面函数内的this改成第一个参数,然后执行前面的函数,不同的是第二个参数,apply是一个数组

      3、bind    只改变前面函数的this,但是不执行前面的函数,需要加一个()才执行

    克隆对象

      1、通过for-in       不管公有的还是私有的都克隆成私有的

      

      2、Object.create()     克隆到原型上面

      

     

     对象继承

      1、原型继承   将父类的实例赋值给子类的原型

              将父类的私有的和公有的都继承在子类的原型上,成为子类的公有属性

      2、call继承   将父类私有的继承子类私有的

        

      3、冒充对象    将父类私有的和公有的继承为子类私有的

        

      4、混合继承   私有的继承为私有的,公有的和私有的再次继承为公有的,call和原型继承的结合

        

      5、组合继承      私有的继承私有的      公有的继承为公有的

        

      6、中间类继承  

           

    arguments 不是一个数组,没有array的那些自带的方法,现在我们想arguments有array的那些方法,将arguments的原型执行Array内置类的原型。

     

      

     

     

     

     

     

  • 相关阅读:
    判断是否微信浏览器,是的话,加入自己想加的功能
    Spring MVC源码(三) ----- @RequestBody和@ResponseBody原理解析
    Spring MVC源码(二) ----- DispatcherServlet 请求处理流程 面试必问
    Spring MVC源码(一) ----- 启动过程与组件初始化
    spring5 源码深度解析----- IOC 之 bean 的初始化
    spring5 源码深度解析-----IOC 之 循环依赖处理
    spring5 源码深度解析-----IOC 之 属性填充
    spring5 源码深度解析----- IOC 之 bean 创建
    spring5 源码深度解析----- IOC 之 开启 bean 的加载
    spring5 源码深度解析----- IOC 之 自定义标签解析
  • 原文地址:https://www.cnblogs.com/gdqx/p/10251149.html
Copyright © 2020-2023  润新知