在JavaScript函数,你需要定义嵌套函数的函数表达式或允许在一个函数体的函数声明?例如,这样的事情是否符合?嵌套函数的Javascript
function a() {
function b() {
function c() {
window.alert(3);
}
window.alert(2);
}
window.alert(1);
}
或者你需要做这样的事吗?
function a() {
var a = function() {
var c = function() {
window.alert(3);
}
window.alert(2);
}
window.alert(1);
}
ECMA-262说:
若干的ECMAScript广泛使用的实现是公知的,以支持使用FunctionDeclaration作为语句。然而,在应用于这些函数声明的语义中,这些实现之间存在重大且不可调和的变化。因为这些不可调和的差异,使用FunctionDeclaration作为在代码语句的结果是未实施方式中可靠地便携式的。建议ECMAScript实现禁止任何的FunctionDeclaration这种用法或遇到这样的使用情况时发出警告。 ECMAScript的未来版本可以定义用于在语句上下文中声明函数的可选便携式方法。
这是否意味着函数体中的函数声明在技术上是不正确的,还是我得到了这个完全错误的?我听说人们把身体称为块,根据标准,这是一个或多个陈述,但我不确定。
我不知道标准是什么,似乎有点混乱,但老实说,我从来没有问题,IE8 +和所有其他的浏览器嵌套函数声明。 – elclanrs 2013-02-15 07:47:14