什么是对象?
对象:任何实体都是对象。拥有属性和方法俩大特征
属性:描述事物的特点
方法:事物拥有的行为
在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.中间类继承