我有这段代码。
var mapping = {};
_.each(labels,function(i,label){
debugger;
});
但是在函数内部无法访问映射变量。
我在其他地方有类似的代码
var labels = {};
_.each(arrOfFields, function(element,index){
labels[prefix+element.fcnbb] = element.UI.label;
});
和标签可在此处访问,我可以使用它。
请解释我为什么会这样?
答案 0 :(得分:0)
此处的问题是映射变量未在功能代码块中声明。
在调试模式下,如果你使用了像这里的回调函数,你需要在函数中声明它,所以调试器会将它保存为局部变量。
这样:
var mapping = {};
_.each(labels,function(i,label){
console.log(mapping); // here
debugger;
});
即使在console.log()
函数中也只是编写变量名,调试将知道他的局部变量,然后你就可以访问变量了。