对象

什么是对象?

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

属性:描述事物的特点

方法:事物拥有的行为

在js中我们区分属性和方法

person.name=“zhang”   属性

person.fn=function(){}   方法

在js中如何去生成对象

1.单例模式/字面量定义  var obj={name:“zhang”}

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

    Object.name=“zhang”

js内置类

string····array···object···number····Boolean···date···function

3.工厂模式

function create(){

var obj={}

Obj.name=

return object

}

4.构造函数

function.person(){

this.name=“li”

}

var zhang=new person()

4.this的问题

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

函数外·····this都是window

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

继承

原型继承

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

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

类的继承

对象赋值

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

object.create()将父类的属性赋值成子类公有的属性

原型继承

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

call继承

改变this指向的方法

1.call

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

2.apply

3.bind

4.提前声明

call继承将父类私有的继承为子类私有的

3.冒充对象继承

将父类的所有属性继承为子类私有的

4.混合继承

将call继承和原型继承结合的

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

5.组合继承

call继承和克隆继承的结合

6.中间类继承

posted @ 2019-02-14 17:20  前端工作员  阅读(142)  评论(0编辑  收藏  举报