• 面向对象复习


                                                    

                                  面向对象复习

    1.什么是对象?

      对象:任何实体都是对象,拥有属性和方法两大特征

      属性:描述事物的特点;

      方法:实物拥有的行为;

    2.在JS中

      Person.name="zhang"

      Person.fn=function(){}

    3.js中如何去生成对象

      (1)单例模式/字面量定义 var obj={name:"zhang"}

      (2)var obj=new Object() 内置类

          Obj.name="zhang"

          js内置的类 string array object number boolean  date function

      (3)工厂模式

          function create(){

            var obj={}

            Obj.name=

            return obj;

          }  

      (4)构造函数

          function Person(){

            this.name="li"

          }

          var zhang=new Person()

    4.this的问题

        this是关键字,它是一个对象;

        函数外 this指向window

        函数内看带不带. 带.就是.前面的对象,不带.就是window

    5.原型prototype

      每个函数 类天生自带一个prototype的属性,这个属性是个对象,它里面天生自带一个constructor的属性,属性值是当前函数/类本身;

      每个实例对象 天生自带一个__proto__的属性,这个属性是对象,它指向当前实例对象的类的原型

    6.类的继承

      对象复制

        (1)通过for in 将父类的所有属性变成子类的私有属性

        (2)Object.create() 将父类的属性复制成子类公有的属性

      <1>原型继承

        将父类的实例赋值给子类的原型,父类实例的所有属性成了子类的公有属性

      <2>call继承 将父类私有的继承为子类私有的

        改变this指向的方法

        a.call() 

          fn.call(div,)将fn中的this换成div然后再把fn调用;

        b.apply()

        c.bind()

        d.提前声明;

       <3>冒充对象

          冒充对象继承利用for in  将父类的所有属性继承为子类私有的

       <4>混合继承 call继承和原型继承结合

         私有的继承为私有的,私有的和公有的再次继承为公有的

       <5>组合继承(寄生式继承)  call继承和克隆的结合

         <6>中间类继承  

          伪数组

       <7>拷贝继承

          浅拷贝

          深拷贝

            

            

  • 相关阅读:
    js处理json数据,java处理json数据
    sqlmap中##和$$的区别
    tar.gz和bin,以及rpm,deb等linux后缀的文件的区别
    ibatis内置类型
    1099端口被占问题
    动态代理与静态代理的区别
    条款36:绝不重新定义继承而来的non-virtual函数(Never redefine an inherited non-virtual function)
    条款35:考虑virtual函数以外的其他选择(Consider alternative to virtual functions)
    条款34:区分接口继承和实现继承(Different between inheritance of interface and inheritance of implemenation)
    工作好习惯(18之后)
  • 原文地址:https://www.cnblogs.com/yuanjingjing/p/10380557.html
Copyright © 2020-2023  润新知