javascript函数作用域和嵌套调用关系

您所在的位置:网站首页 嵌套函数的定义域 javascript函数作用域和嵌套调用关系

javascript函数作用域和嵌套调用关系

2024-07-02 12:50| 来源: 网络整理| 查看: 265

JavaScript 的作用域是通过函数来定义的,在一个函数中定义的变量只对这个函数内部可见,我们称为函数作用域。

特别注意:JavaScript 的作用域完全是由函数来决定的, if 、 for 语句中的花括号不是独立的作用域。

在函数中引用一个变时,JavaScript 会先搜索当前函数作用域,或者称为“局部作用域”,如果没有找到则搜索其上层作用域,一直到全局作用域。

函数作用域的嵌套关系是定义时决定的,而不是调用时决定的,也就 是说,JavaScript 的作用域是静态作用域,又叫词法作用域,这是因为作用域的嵌套关系可以在语法分析时确定,而不必等到运行时确定。下面的例子说明了这一切: var scope = ‘top’; var f1 = function() { console.log(scope); }; f1(); // 输出 top var f2 = function() { var scope = ‘f2’; f1(); }; f2(); // 输出 top 这个例子中,通过 f2 调用的 f1 在查找 scope 定义时,找到的是父作用域中定义 的 scope 变量,而不是 f2 中定义的 scope 变量。这说明了作用域的嵌套关系不是在调用 时确定的,而是在定义时确定的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3