JavaScript:单独声明和定义函数?

标签 javascript function scope declaration definition

如果我想给 JavaScript 变量全局作用域,我可以轻松地做到这一点:

var myVar;

function functionA() {
    myVar = something;
}

是否有一种类似简单而干净的方法(无需创建对象)来分离嵌套函数的“声明”和“定义”?像这样的东西:

function functionB;       // declared with global scope

function functionA() {

    functionB() {        // nested, would have local scope if declared here
        CODE;
    }
}

我应该澄清一下,我指的是函数名称本身的范围——这样,如果它位于 iframe 中,则可以从父文档中的脚本调用它。 (与嵌套函数内的变量范围无关。)

最佳答案

您可以通过在 window 对象上创建实例来创建全局变量和函数:

function _A()
{
    // scoped function
    function localFunctionInTheScopeOf_A()
    {
    }

    // global function
    window.globalFunctionOutsideTheScopeOf_A = function ()
    {
    };
}

但是,就您而言,您需要做的就是:

var myFn; // global scope function declaration

function randomFn()
{
    myFn = function () // global scope function definition
    {
    };
}

注意:阻塞全局作用域绝不是一个好主意。如果可以的话;我建议您重新思考代码的工作原理,并尝试封装代码。

关于JavaScript:单独声明和定义函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3483681/

相关文章:

javascript - 带有自动隐藏和显示的清除按钮的文本输入

javascript - 文本编辑器内的可拖动图像,防止文本输入

javascript - getComputedStyle 执行失败

c - 尝试从 C 数组中删除元素时出现意外结果

javascript - 如何组合单选和输入框中的值并在单击按钮时打开 url?

javascript - 在 NodeJS 中将大 XLSX(超过 600MB)解析/转换为 CSV

javascript onclick 从数组中按顺序

php - 引用:什么是变量范围,哪些变量可从何处访问,什么是“ undefined variable ”错误?

Javascript/jQuery 对象范围问题

c++ - 其他源文件 C++ 无法访问全局对象