25.JavaScript执行上下文

JavaScript执行上下文

1.this指向

1).直接调用函数,this指向全局对象

2).在函数外,this指向全局对象

3).通过对象调用或new一个函数,this指向调用的对象或新对象

2.使用new关键字生成一个对象的过程:

1).确定所有形参值以及特殊变量arguments

2).确定函数中通过var声明的变量,将它们的值设置为undefined。若1)步骤中形参中已有重名的变量名称,则直接忽略2)步骤,重名变量的值还是1)步骤中的值

3).确定函数中通过字面量声明的函数,将它们的值设置为指向函数对象。若1)步骤中形参已有重名的变量名称,则3)步骤中的函数字面量声明将会覆盖掉1)步骤中的重名变量的值

例题:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        function A(a, b) {
            console.log(a, b);//a的值是形参a的值,b的值是下面函数b字面量的值
            var b = 123;

            function b() {}
            var a = function () {}
            console.log(a, b);//a的值是上面变量a的值,b的值是上面变量b的值
        }

        A(1, 2);
    </script>
</body>

</html>
index.html

结果展示:

猜你喜欢

转载自www.cnblogs.com/lanshanxiao/p/12824478.html