如果我想给 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/