JavaScript中this工作方式

        var x =0;   
        var foo = {
            bar:{
                x:2,
                bar2:function () {
                    console.log(this.x);
                }
            }
        }
        var a=foo.bar.bar2;
        foo.bar.bar2();//2
        a();//0
  • this永远指向函数运行时所在的对象,而不是函数创建时所在的对象
  • 匿名函数和不处于任何对象中的函数,this指向window
  • call,apply,with指的this是谁就谁
  • 普通函数调用,函数被谁调用,this就指向谁

在上面列子中:

foo.bar.bar2():指向的是foo.bar.x.

a()运行时所在的对象是window,所以指向的是window,最后的值是0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值