将文字对象推送到空数组不起作用

时间:2013-12-19 11:15:41

标签: javascript arrays push object-literal

我正在尝试填充一个空数组

MessageListFactory = {
    messageListCont: new Array()
}

将另一个数组传递的文字对象作为此方法的参数

MessageListFactory.init = function(roomList){
    for(var i = 0; i < roomList.length; i++){
        var msgL = MessageList.create();
        msgL.init(roomList[i].jID, roomList[i].roomName);
        console.log(msgL);//Object {messages: Array[0], jID: "c1@xxxx", name: "room S1", notReadMsgCounter: 0, create: function…}
        this.messageListCont.push(msgL);//push msgL to MessageListCont
    }
    console.log(this.messageListCont);//[Object] {length: 0, __proto__: Array[0]}
    }

正如您从console.log()看到的那样,如果我将messageListCont留空,它会保持在push()之后。但如果我:

  1. 在for循环之前将一个元素放在数组内(例如messageListCont : ["foo"]
  2. 用字符串代替对象(例如messageListCont.push("foo")
  3. 在这些情况下,push正常工作并且数组已填充。任何人都可以解释我这个吗?

0 个答案:

没有答案