我有一个看起来像的自定义对象
var locationsMap = {
"obj1":[1],
"obj2":[7],
"obj3":[21]
}
我可以这样称呼这个自定义对象:
var loc = "obj2";
alert(locationsMap[loc][0]);
这在jsFiddle中运行良好;但是,当我将此逻辑嵌入到 NetSuite 中的代码中时,loc 变得未定义:
nlapiLogExecution('debug',"Location: "+ loc); //works fine
nlapiLogExecution('debug','Location: '+locationsMap[loc][0]); //throws exception
在 NetSuite 调试器中:
$ nlapiLogExecution('debug','Location: '+locationsMap[loc][0]);
> TypeError: Cannot read property "0" from undefined
为什么当我通过locationsMap
对象调用 loc 时显示为未定义,但当我自己调用它时显示为未定义?
- 编辑 -
呼叫nlapiLogExecution('debug','Location: '+locationsMap['obj2'][0]);
按预期工作。
--编辑2--
由于这些问题,我最终放弃了这种方法,尽管我仍然有兴趣找出为什么会出现这种行为。