【发布时间】:2013-10-22 19:23:04
【问题描述】:
这是我目前拥有的代码,正在发生的一个问题是我不能使用test(),因为presets[index].name 和value 在它们的函数范围之外是不可见的,我应该如何在其中声明我的对象数组全局范围以便我能够在其他函数中访问这两个变量?
var presets = [];
var index;
function CreatePresetArray(AMib, AVar) {
var parentpresetStringOID = snmp.getOID(AMib, AVar);
var presetStringOID = parentpresetStringOID;
parentpresetStringOID = parentpresetStringOID.substring(0, parentpresetStringOID.length - 2);
log.error("parentpresetStringOID is " + parentpresetStringOID);
var presetswitches = {};
for (var i = 1; i < 41; i++) {
presets.push(presetswitches);
try {
log.error("presetStringOID before getNextVB= " + presetStringOID);
vb = snmp.getNextVB(presetStringOID);
presetStringOID = vb.oid;
log.error("presetStringOID after getnextVB= " + presetStringOID);
var presetStringVal = snmp.get(presetStringOID);
log.error("presetStringVal= " + presetStringVal);
index = i - 1;
presets[index].name = presetStringOID;
presets[index].value = presetStringVal;
log.error("preset array's OID at position [" + index + "] is" + presets[index].name + " and the value stored is " + presets[index].value);
//log.error("presets Array value ["+index+"] = "+presets[index].configs);
if (presetStringOID.indexOf(parentpresetStringOID) != 0) {
break;
}
} catch (ie) {
log.error("couldn't load preset array " + index);
};
};
}
CreatePresetArray(presetMib, "presetString");
function test() {
for (i = 1; i < 41; i++) {
log.error("test" + presets[index].name + " " + presets[index].value);
};
}
test();
【问题讨论】:
-
请粘贴您提到的代码
-
慢慢来,将每个代码行缩进至少 4 个字符……这样就可以了
-
您也可以发布指向 jsfiddle.net/ 或 codepen.io 的链接
-
你在哪里以及如何准确地调用函数
CreatePresetArray? -
这意味着“如果你根本不调用它,那将是问题”:-)
标签: javascript arrays function object scope