zoukankan      html  css  js  c++  java
  • 面向对象复习

                                                    

                                  面向对象复习

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

          浅拷贝

          深拷贝

            

            

  • 相关阅读:
    Xcode ARC,非ARC混搭
    Xcode GData库解析XML
    NSThread
    自定义UITableViewCell中的button实现视图切换
    UITableView
    iOS事件响应链
    结构体和NSData相互转换
    UIView的transform属性
    javascript垃圾回收机制
    ios8 滚动事件解放了
  • 原文地址:https://www.cnblogs.com/yuanjingjing/p/10380557.html
Copyright © 2011-2022 走看看