面向对象

2017-11-15  本文已影响0人  晓箬
类       Class   
         泛指一类事物
对象     Object
         某一个具体的东西

对象由什么组成?

属性    
  属性是属于某个对象的。

方法
方法是属于某个对象的。

创建一个类

构造函数
    因为是创建对象的

两个问题:
    1.没有new
    2.同一个类的方法,不相等

加new
    1.开头加new Object();
    2.结尾加return this;

方法给构造的原型加
    构造函数的原型  类名.prototype

 属性给构造的this加
     Person类
function Person(name){
    this.name = name;   
    }
Person.prototype.showName = function(){
    return this.name;
};

this是什么?

不看定义,只看调用
方法是谁的,this就是谁
优先级
    高   
        new             Object
        定时器             window
        方法、事件       对象本身
        正常调用        window\undefind
    低
只管一层、只看最后一次调用
只看最后一次调用

面向对象三大特性

1)封装        
2)继承 (属性和方法)
   Person   人类
    属性
        name age gender
    方法
        showName() showAge() showGender()
Worker  工人类 
    属性
        name age gender job
    方法
        showName() showAge() showGender() showJob()
 矫正this指向
    fn.call(this指向谁,arg1,arg2....);
    或者
    fn.apply(this指向谁,[arg1,arg2,arg3...]);      
 属性继承
    function 子类(a,b){
        父类.call(this,a,b);
        或者
        父类.apply(this,arguments);
    }
方法继承

    子类.prototype = new 父类();
    子类.prototype.constructor = 子类;
3)多态        
上一篇 下一篇

猜你喜欢

热点阅读