关于this指向
1.在全局函数下,函数内的this默认指向window
2.在严格模式下,函数内的this指向undefined
3.在事件里面,this指向当前的事件的挂载者(绑定)
4.在定时器里,this默认始终指向window
5.对象的方法里,this指向当前的对象
6.箭头函数里,this指向上下文环境对象(环境作用域)
7.jQ对象的extend里的this,指向当前元素(是一个jQ对象)
改变this的方式?
1.new 操作符在实例化时候,this指向当前构造函数(实例对象)
this从window-->指向-->当前的实例对象
2.ES5的bind()改变this指向,但是bind不会执行该函数
3.call 和aplly 都能改变this的指向,并且会立马执行该函数
不同点:aplly只有2个参数,第一个参数this的指向,第2个参数是一个数组
call 可以有多个参数,第一个参数this的指向,
4.利用箭头函数
var obj = { name: '刘德华' };
var name = "蔡依林";
function show(n, m) {
console.log(n, m);
console.log(this.name);
}
show.bind(obj)()
show.call(obj, 10, 20);
show.apply(obj, [10, 20]);
网友评论