Js执行上下文

全局上下文:

        1.首先将window确定为全局上下文

        2.第二步对全局变量进行预处理

                ①var定义的全局变量都为undefined值,同时将其添加为window的属性

                ②function声明的函数和其函数体添加为window的方法

                ③这时的this是window

        3.开始执行全局代                                

函数上下文:如下代码

var a1 = 3;
function fn (a1) {

    console.log(a1);    //2
    console.log(a2);    //undefined
    a3();               //a3()
    console.log(this);   //window
    consolo.log(arguments) //2,3
     
    var a2 = 3;
    function a3() {
    console.log('a3()')
    }
}
   fun(2,3)

        函数执行上下文顺序:

                ①在调用函数,准备执行前,串键对应的函数执行上下文对象

                ②对局部数据进行预处理

                        -形参变量==>赋值(实参)==>添加为执行上下文的属性

                        -arguments==>赋值(实参列表),添加为执行上下文的属性

                        -var定义的局部变量的值为undefined,添加为执行上下文的属性

                        -function声明的函数==>赋值,添加为执行上下文的方法

                        -this==>赋值,this为调用该函数的

                ③开始执行函数代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值