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 オブジェクトに入れてから、 にプッシュします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残念ながらプッシュ方式で印刷しようとすると実行が止まってしまうようです。つまり、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);
}

そして、「デバッグ方法に関するガイダンス」を求めたので、いつでもクロム開発者のツールを選択できます。それ以外の場合は、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 に答える