在javascript dojo中创建对象时属性值意外变为数组
我的dojo类中有以下函数:在javascript dojo中创建对象时属性值意外变为数组,javascript,dojo,Javascript,Dojo,我的dojo类中有以下函数: dojo.declare("someclass", null, { getSomeObject: function(id, name, description) { console.log("id=", id, ", name=", name, ", description=", description); var newObj = { "id": id, "name": na
dojo.declare("someclass", null, {
getSomeObject: function(id, name, description) {
console.log("id=", id, ", name=", name, ", description=", description);
var newObj = {
"id": id,
"name": name,
"description": description
};
console.log("newObj=", newObj);
return newObj;
}
});
在我升级我正在开发的产品之前,这一切都很好。当我现在运行代码时,不知何故,在“newObj”内部,所有属性值都转换为数组-即,当“123”作为id值传递给函数时,在newObj内部,“id”属性值为[“123”]
我尝试过使用不同的方法来创建对象-使用“newobject()”等等。似乎没有任何帮助。当我在旧产品中运行相同的代码时,它会按预期工作
这是谷歌浏览器控制台的输出--
有什么帮助吗?我想您使用的是
ItemFileReadStore
或ItemFileWriteStore
。
这是绝对正常的,这些存储在内部使用阵列。
要获取该值,应按照文档中的建议执行:
store.getValue(storeItem, "property");
或者,如果您确定propery中表示的值,您可以通过执行
+”
安全地进行类型转换。请显示调用该函数的实际控制台输出。对象不只是自己变成数组。我用控制台输出更新了上面的问题。好吧,这很奇怪。\u RI
属性的存在意味着Dojo在控制台日志展开之前就已经控制了您的对象。不过,扩展对象在控制台中显示其当前状态并非未知,而不是日志记录时的状态。尝试直接记录newObj.id
,而不是整个newObj
。\u RI
的存在仅仅意味着他已经记录了他商店物品的\u Root\u项目
store.getValue(storeItem, "property");