这个 JavaScript 函数的范围是什么?

What is the scope of this JavaScript function

本文关键字:范围是 是什么 范围 JavaScript 函数 这个      更新时间:2023-09-26

以下函数的作用域是什么,因为使用窗口作用域调用它是行不通的。

$(document).ready(function(){
    function a() {
        alert("function called from global scope");
    }
    // this alerts
    a(); //This is global scope?
    // this doesn't alert
    window["a"]();  //This is also global scope?
});

还让我知道如何找到函数、对象或变量的范围?

JavaScript 具有函数级范围。因此,让我们浏览一下代码。在代码中定义两个函数。第一个是作为回调传递给$(document).ready的无名函数。我们称之为回调函数a在此回调函数内部定义,因此在本地范围内。因此a只能从回调函数内部引用。

定义a后调用它并查看警报。然后,您尝试从全局对象获取对a的引用(全局定义的所有内容都将在浏览器中window)。由于a不是全局定义的,因此无法从 window 中检索它。实际上,您检索null,并在尝试使用()调用它时在控制台上看到TypeError: window.a is not a function