关于this指向

2021-04-27  本文已影响0人  BJ呀呀呀

关于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]);

上一篇 下一篇

猜你喜欢

热点阅读