面向对象复习

                                                

                              面向对象复习

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>拷贝继承

      浅拷贝

      深拷贝

        

        

 

转载于:https://www.cnblogs.com/yuanjingjing/p/10380557.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值