嵌套函数“未定义”中的变量
variables in nested functions "undefined"
windows.onload=function(){
...somecode...
var scene = new THREE.Scene();
...somecode...
var i;
var j;
for (i=......){...}
func2();
function func2(){
...somecode...
BREAK AT THIS LINE;
}
}
当我在那条线上休息时,
Firebug说,"i"和"j"是未定义的,但内部函数显然可以得到"i"的值对吗?
但奇怪的是,"场景"显示正确。
chrome的Ctrl + Shift + I显示了同样的事情。
但更奇怪的是,当我添加时
alert(i);
到 func2 的开头,
这一次msgBox 正确地告诉 i 的值,
Firebug 正确显示 i 的值,
但 j 仍然显示为未定义。
我想知道为什么,
Firebug 和 chrome 都显示相同的东西,所以它似乎不是 Firebug 的错误,
那么这有什么提示吗?
多谢。
i 的值应该在内部函数中可用。这将在Firebug和node中打印"2".js如预期的那样:
(function() {
for (var i=0; i<2; ++i) {};
(function() { console.log(i) })();
})();
那么这只是调试器显示不正确值的问题吗?
function func2(){
BREAK HERE;
...
for (var i = ...
for (var j = ...
}
如果你有这样的代码,那么这些var
语句就会被提升到函数声明的顶部,所以它实际上看起来像
function func2() {
var i, j;
BREAK HERE:
...
for (i = ...
for (j = ...
}
除此之外,没有理由不定义i
和j
相关文章:
- Socket.IO未定义变量
- 更改 Javascript 对象中所有未定义变量的值
- coffeescript,类未定义变量
- 使用下划线未定义变量时发生抛出/捕获错误
- 网络浏览器正在成为“;严格的“;用于Javascript中未定义变量的操作
- 使用window.location时未定义变量
- 传递给数据的未定义变量
- bizzare未定义变量
- JavaScript 中全局范围内存在未定义变量的原因是什么?
- JavaScript onClick 参数表示未定义变量
- 在指令中使用 $scope.$watch 处理未定义变量的替代方法
- 对于循环错误:未捕获的引用错误,未定义变量.怎么了
- JavaScript / YouTube API - 未定义变量 YT
- 未捕获的引用错误:在测试真实性时未定义变量
- 通过使用JavaScript“未定义”(变量),我们可以释放系统内存
- 与未定义变量相关的错误
- Angularjs 控制器中的未定义变量
- 角度解析:未定义变量
- BackboneJS Uncaught ReferenceError:未定义变量
- 使用Underscore JS部分和for循环的未定义变量对象