箭头函数的this指向

1.普通的箭头函数在严格模式下this也指向window

 test1 = ()=>{
            console.log(this) // this指向window use strict也是
        }

2.箭头函数忽略任何形式的this指向改变(静态this指向),箭头函数一定不是一个构造器

   var a = 2
        var obj = {
            a: 1
        }
        test1 = ()=>{
            console.log(this.a) 
        }
        test2 = function() {
            console.log(this.a)
        }
        test1.call(obj) // 2
        test1.apply(obj) // 2
        test1.bind(obj)() // 2
        test2.call(obj) // 1
        test2.apply(obj) // 1
        test2.bind(obj)() // 1

 3.箭头函数的this不是谁绑定就指向谁

  obj.test = ()=>{
            console.log(this) // window
        }
        obj.test()
        obj.test3 = function() {
            var t1 = ()=>{
                // this指向obj
                // 箭头函数的this—>外层作用域的this指向(外层的函数不能是箭头函数)
                console.log(this)
            }
            var t2 = function() {
                // this 指向window
                console.log(this)
            }
            t1()
            t2()
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值