JavaScript 之 this 详解

this指向js里面比较重要的内容下面介绍一下。

this指向可以分以下四种情况:
1、函数预编译过程  this ---> window
function Num(n){
    var a = 12;
    var b = function(){};
}
 Num(3);

// 此时函数会产生预编译对象AO
    // AO{
    //     arguments:[1];
    //     this : window,
    //     n : 3,
    //     a : 12,
    //     b : function(){},

    // }


// 但是上面Num函数如果new一个构造函数的话就会在函数里面this指向函数的原型
    function Num(n){
        // var this = Object.create(Num.prototype);
        // {
        //     __proto__: Num.proto
        // }
        var a = 12;
        var b = function(){};
    }
    new Num();

        // 测试一下
        function test(){
            console.log(this);
        }
        test();
        //打印出window

2、全局作用域里    this ---> window
3、call/apply 可以改变函数运行时this指向     点击了解call/ apply
4、obj.func();    func()里面的this指向obj   谁调用的, this就指向谁
var obj = {
    a : function(){
        console.log(this.name);
    },
    name : 'abc'
}
obj.a();
// 谁调用的这个方法,this就指向谁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值