随笔
构造函数,实例化对象,原型之间的关系:
1:任何一个函数都有prototype属性,他本身就是一个对象,我们称之为原型。
2:构造函数也是函数,也有prototype属性,他本身就是一个对象,我们称之为原型。
3:构造函数的原型对象的属性和方法,可以被实例化对象所继承。
4:任何一个对象都有constructor属性,实例化对象的,constructor属性指向构造函数
5:原型也是对象,也有constructor属性,原型对象的constructor属性指向构造函数
6:任何一个对象都有–proto–属性,实例化对象的–proto–属性指向构造函数原型。
new关键字的作用
1创建一个新对象,返回一个新对象
2:改变构造函数的this指向,指向实例化对象
原型链
在jave script中 每个对象都有一个–proto–属性时,如果这个对象内部不存在这个属性,那么它就会去–proto–里去找这个属性,这个–proto–又会有自己的–proto–于是就这样一直找下去,这就是原型链的概念
原型链的最终指向是:null
原型链的查找规则:按照原型链依次往下找,有就返回,没有就undefind或报错
call
1:可以进行函数的调用,
2:可以改变this的指向,如果没有参数,this指向全局
3:可以改变this指向,如果有一个参数,this指向该参数。
4:可以改变this指向,如果有多个参数,this指向第一个参数,其他参数是参数列表
apply
1:可以进行函数的调用
2:可以改变this指向,如果没有参数,this指向全局
3:可以改变this指向,如果有一个参数,this指向该参数。
4:可以改变this指向,如果有多个参数,this指向第一个参数,其他参数是数组
bind
1:不可以进行函数的调用
2:可以改变this的指向,如果没有参数,this指向全局
3:可以改变this指向。如果有一个参数,this指向该参数
继承
原型继承,构造继承(call方法继承),拷贝继承
深拷贝:传值
浅拷贝:传址