在javascript dojo中创建对象时,属性值意外地变为数组

时间:2012-07-19 19:51:24

标签: 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": name,
            "description": description
        };
        console.log("newObj=", newObj);
        return newObj;
    }

});

在升级我正在使用的产品之前,这很好。当我现在运行代码时,不知何故在“newObj”中,所有属性值都变成了数组 - 即当“123”作为id值传递给函数时,在newObj中,“id”属性值为[“123”]。< / p>

我尝试过使用不同的方法来创建对象 - 使用“new Object()”等等。似乎没有任何帮助。当我在旧产品中运行相同的代码时,它按预期工作!!!

以下是Google Chrome控制台的输出 -

id= 5962960 , name= sng2 , description= test
newObj= 
Object
_RI: true
description: Array[1]
id: Array[1]
name: Array[1]
__proto__: Object

任何帮助???

1 个答案:

答案 0 :(得分:1)

我想您使用的是ItemFileReadStoreItemFileWriteStore。 那么绝对正常,这些存储在内部使用数组。 要获得您应该按照doc:

中的建议执行的值
 store.getValue(storeItem, "property");

或者如果您确定该值表示的价值,您可以通过+ ""

安全地进行类型转换