js基础之this的用法

javascript中this的使用主要分为几下几种情况

  1. 函数预编译过程this ----> window
		function test(c){
            var a = 123;
            function b(){}
        }
        
        //预编译过程
        AO{
            arguments: [1],
                this: window,
                c: 1,
                a: undefined,
                b: function(){}
        }
        //函数执行
        test(1)
  1. 全局作用域里this-------->window
  2. call/apply可以改变函数运行时this的指向
  3. obj.func() 谁调用这个方法,这个方法中的this就指向谁

思考:
var name = “222”;
var a = {
name: “111”,
say: function(){
console.log(this.name);
}
};
var fun = a.say;
fun(); //222
a.say(); //111
var b = {
name: “333”,
say: function(fun){
fun();
}
};
b.say(a.say); //222
b.say = a.say; //
b.say(); //333

var a = 5;
        function test(){
            a = 0;
            alert(a);
            alert(this.a);
            var a;
            alert(a);
        }

分别执行test()和new test()
执行test()的时候,预编译环节中this指向window
AO{
a: 0,
this: window
}
所以结果分别是 0 5 0
执行new test()的时候,预编译环节中
AO{
a: 0,
this: {}
}
所以结果是 0 undefined 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值