【发布时间】:2010-11-17 02:10:15
【问题描述】:
这项工作:
var stepFunc =
[
//Step 0 (it doe not exist)
function(){console.log("Step 0");},
//Step 1
(function(){
var fFirstTime = true;
return function(){
console.log("Step 1");
if (fFirstTime){
//Do Something
}
}
})(),
// ... Other steps
];
这不起作用:
var stepFunc =
[ // Step 0
[
function(){console.log("Step 0");},
function(){console.log("Check Step 0");}
], //Step 1
(function(){
var fFirstTime = true;
return
[
function() { //Initialization function
console.log("Step 1");
if (fFirstTime){
//Do somrthing
}
}, function() {
return true;
}
];
})(),
// ...
];
我希望 stepFunc 是一个函数数组的数组。在第一层,我想创建一个拥有自己数据的闭包。为什么 stepFunc[1] “未定义”?
【问题讨论】:
-
尽我所能清理这个,修复缩进,对齐括号;即使在示例代码 sn-ps 中,您也应该尝试平衡括号,否则人们会认为这就是导致您的问题的原因。
-
@Šime Vidas - 我认为您在编辑时无意中删除了问题的原因。确保保持问题中代码的完整性(或缺乏完整性)。 :o) 回滚到@meagar 的编辑。
-
@patrick 哈哈,我只是尝试更好地格式化代码以便能够阅读代码,以便尝试解决问题,从而解决了这个问题。啊,JavaScript。 :)
-
我测试过了。我复制并粘贴到jconsole.com 并使用开发者工具。 stepFunc[1] 是“未定义的”。有什么问题?
-
@Chris Check out jslint.com 将您的代码放入其中,它会报告您可能想要修复的错误,以使您的代码更健壮。
标签: javascript arrays multidimensional-array