this用法

在函数内部运行时,内部会自动有一个this对象可以使用

在不同的场合,this会有不同的值,this就是函数运行时所在的环境

情况一:纯粹的函数调用

这是函数的最通常用法,属于全局性调用,因此this就代表全局对象。请看下面这段代码,它的运行结果是1。

        var x = 1;
        function Fun1() {
            console.log(this);
            console.log(this.x);
        }
        Fun1();//1

情况二:作为对象的方法调用

函数还可以作为某个对象的方法调用,这时this就指这个上级对象。

        function Fun2() {
            console.log(this);
            console.log(this.y);
        }
        var obj = {};
        obj.y = 1;
        obj.Fun2 = Fun2;
        obj.Fun2();//1

情况三:作为构造函数调用

所谓构造函数,就是通过这个函数,可以生成一个新对象。这时,this就指这个新对象。

        function Fun3() {
            console.log(this);
            this.x = 2;
        }
        var f3 = new Fun3();
        console.log(f3.x);//2,这里的x是局部变量

情况四:apply(),call()调用

它的第一个参数就表示改变后的调用这个函数的对象

        var z = 1;
        function Fun4() {
            console.log(this);
            console.log(this.z);
        }
        Fun4.call(this);//1
        var person = {
            z: 2
        };
        Fun4.call(person);//2
以上内容来自 Javascript 的 this 用法

猜你喜欢

转载自blog.csdn.net/xc917563264/article/details/80999138