JavaScript函数基础(二)之this

1、this是什么?

任何函数本质上都是通过某个对象调用的,如果没有指定,this就是window
所有函数内部都有一个变量是this,它的值是调用当前函数的对象

十分钟读懂 JavaScript 中的 this

2、如何确定this的值?

test() ----》 window
p.test() ----》> p
new test() ----》-> 新创建的对象
p.call(obj) -----》-> obj

   ========================================================
 <script>
        function Person(color) {
            console.log("1、"+this);
            this.color=color;
            this.getColor=function () {
                console.log("2、"+this)
                return this.color;
            };
            this.setColor=function(){
                console.log("3、"+this)
                this.color=color;
            };
        }
        Person("red");//this是谁?  window
        //1、[object Window]
        var p=new Person("yellow");//this是谁?p
        //1、[object Object]
        p.getColor();//this是谁?p
        //2、[object Object]
        var obj = {};
        p.setColor.call(obj,"black");//this是谁? obj
        //3、[object Object]

        var test=p.setColor();
        test();//this是谁?window

        function fn1() {
            function fn2() {
                console.log(this);
            }
            fn2();//this是谁? window
        }
        fn1();//this是谁?

//
        var x = 2;
        function test1(){
            this.x = 1;
        }
        var o = new test1();
        alert(x); //2
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值