0

我的 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”]。

我尝试过使用不同的方法来创建对象 - 使用“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

有什么帮助???

4

1 回答 1

1

我想你正在使用ItemFileReadStoreor ItemFileWriteStore。那么这是绝对正常的,这些存储在内部使用数组。要获得您应该按照文档中的建议执行的值:

 store.getValue(storeItem, "property");

或者,如果您确定属性中表示的值,您可以安全地进行类型转换+ ""

于 2012-07-20T07:37:14.457 回答