1

我有一个 Msg 对象和一个MsgCollection对象。

消息对象:

function Msg(text, timestamp, source, thread_id) {
    Msg.RECEIVED = 1;
    Msg.SENT = 2;

    this.thread_id = thread_id;
    this.text = text;
    this.timestamp = timestamp;
    this.source = source;
}

MsgCollection 对象:

function MsgCollection() {
    this.all = [];
}
MsgCollection.prototype.push = function(msg) {
    this.all.push(msg);
    console.log("first message text: " + this.all[0].text);
}

在以下代码中,我获取结果对象并将所有数据放入一个临时 Msg 对象中,然后再将其推送到 a MsgCollection

var msgColl = new MsgCollection();
for (var i = 0; i < result.texts.length; i++) {
    var tempMsg = new Msg;
    tempMsg.thread_id = result.texts[i].thread_id;
    tempMsg.text = result.texts[i].message;
    tempMsg.timestamp =  Number(result.texts[i].time_received);
    tempMsg.source = result.texts[i].type;

    msgColl.push(tempMsg);
}

不幸的是,当我尝试this.all[0].text在 push 方法中打印时,执行似乎停止了。换句话说,似乎没有任何东西被推入msgCollection对象中。也许这有点复杂,但也许我可以得到一些关于如何调试的指导?

谢谢

4

2 回答 2

3
var tempMsg = new Msg(); 

tempMsg.timestamp = new Number(result.texts[i].time_received);  

效果很好
DEMO

于 2013-06-21T05:36:25.670 回答
0

试试下面的代码:

for (var i = 0; i < result.texts.length; i++) {
    var tempMsg = new Msg();
    tempMsg.thread_id = result.texts[i].thread_id;
    tempMsg.text = result.texts[i].message;
    tempMsg.timestamp = new Number(result.texts[i].time_received);
    tempMsg.source = result.texts[i].type;

    msgColl.push(tempMsg);
}

当您询问“如何调试的指导”时,您始终可以选择 chrome 开发人员的工具,否则我建议您使用firebug

否则,为了更简单的调试,您也可以执行以下操作(您可以使用 try-catch):

try {
   //Your code goes here..
   alert(Obj); //You can Inspect an object here..
}
catch(e) {
    //If any error you will inspect here..
    alert(e); 
}

我想这可以帮助你..

于 2013-06-21T05:37:15.903 回答