JavaScript中this工作方式

来源:互联网 发布:手机淘宝贷款在哪里看 编辑:程序博客网 时间:2024/05/17 01:21
        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

0 0