JS高级---day031.方法过载 如果方法挂载在this上,每个new出来的实例对象,都有一份方法的副本,如果多次调用方法,就出现很多方法副本,这样的情况成为方法过载 [[protype]]---隐式原型 2.原型与原型链2.1原型1.每个函数(特指构造函数),都有一个属性prototype原型(显式原型),它的值是一个对象,只要往这个对象中添加方法,这些方法都会被new处得来的实例对象共享 2.实例对象,都有一个_proto_隐式原型(新版本浏览器显示[[prototype]]),等于自己构造函数的显示原型:prototype 3.原型对象对象,有一个属性constructor,指向构造函数本身 原型的作用添加共享的方法 2.2原型链1.原型prototype本身也是一个实例对象,它也有自己的构造函数,他的构造函数是object,原想prototype也有属性_proto_隐式原型,指向object的显示原型prototype 2.object的显示原型prototype也是实例对象,也有属性_proto_隐式原型,指向null 3.object的prototype上有一个属性constructor,指向构造函数object自己本身 作用实力对象去查找方法,先找自己们自己没有,沿着原型链找,找到就使用,只到找到object的prototype为止,找不到就报错 3.this指向---七种指向1.全局中的this
2.函数中的this
3.对象方法中this
4.构造函数中的this
5.定时器的回调中的this
6.事件处理函数中的this
7.箭头函数的this3.1修改this的指向1.call()
2.apply()
这两个方法都可以修改this的指向
这两个方法都可以调用函数,在调用函数的同事,可以指定this的指向
函数名()---谁调用指向谁
函数名.call(this对象,实参1,实参2...)
不确定个数的参数,第一个参数是新的this指向,后面的参数按照所需要的实参一次传入
函数名.apply(this对象,[实参1,实参2...])
两个参数,第一个参数是新的this指向,第二个参数为一个数组,数组中传入实参bing()
可以把一个函数的this绑定到一个目标对象上,然后返回一个新的函数,此后只要调用新函数,新函数的thisyong'y
|