总结一下this指向问题
1,一般函数的this指向window,谁调用指向谁 .对象内部的函数指向这个对象,事件函数指向这个事件源。。。
2,es6出的箭头函数的this指向所在区域的this,任何方法都改变不了(包括call,apply,bind.) ,直接改所在区域的this或者不,使用箭头函数
改变this问题
1,箭头函数可以把函数this指向由被调用的对象转成被调用对象的this
2,call 使用方法 (函数或对象).call(想要前面那个函数或对象指向谁就写谁,参数(这个参数为列表形式 如: 1,2,34,5,6,7,8,9,。。。。。)) 第一个参数可为null
apply 同上 不过第二个参数为一个数组 (函数或对象).apply(想要前面那个函数或对象指向谁就写谁,参数 这个参数为列表形式 如: [1,2,34,5,6,7,8,9,。。。。。]) 这玩意能做数组的展开使用 第一个参数可为null
bind 同第一个 不过这bind接收的是一个返回函数 需要执行才可以 例如 (函数或对象).call(想要前面那个函数或对象指向谁就写谁,参数(这个参数为列表形式 如: 1,2,34,5,6,7,8,9,。。。。。))
apply和 call无需使用 但是 bind需要再后面加上() 即可调用回调函数
new一个对象的过程
1,先写一个构造函数 函数内部的参数为 this.实参=实参 此函数默认返回 this过的实例项
2,当new一个函数时候 会创建一个新的内存空间实例 并将此new 函数的this指向新创建的实例
3,new出来的实例是一个新的内存空间 所以改变里面的数据 原构造函数的数据不会改变