2017-10-07 85 views
0

的愈來愈未捕獲的參考錯誤:「消息」沒有被定義, 這裏是代碼:未捕獲的ReferenceError:X是未定義

class ChatApp { 
    constructor(){ 
    //console.log('ChatApp constructor'); 
    socket.init('ws://localhost:8000'); 
    socket.registerOpenHandler(() => { 
     let message = new ChatMessage({ message: 'Hello' }); 
     socket.sendMessage(message.serialize()); 
    }); 
    socket.registerMessageHandler((data) => { 
     console.log(data); 
    }); 
    } 
} 

class ChatMessage { 
    constructor({ 
    message: m, 
    user: u='Nader', 
    timestamp: t=(new Date()).getTime() 
    }) { 
    this.message = message; 
    this.user = user; 
    this.timestamp = timestamp; 
    console.log(message); 
    } 
    serialize(){ 
    return { 
     message: this.message, 
     user: this.user, 
     timestamp: this.timestamp 

    }; 
    } 
} 

雖然我使用讓消息行5定義的消息.... 請幫忙,謝謝

+1

你一定要明白你解構過程中重命名?它不是'消息'。 – Li357

+0

「user」和「timestamp」相同。 –

+0

@Andrew李你是正確的 – Ned007

回答

0

您正在使用錯誤的變量名,用什麼你通過構造函數中,

this.message = m; 
this.user = u; 
this.timestamp = t; 
console.log(message); 
+0

感謝Sajeetharan, 錯誤,現在發生在第19行: 消息:男, (遺漏的類型錯誤:無法讀取的未定義的屬性「消息」), – Ned007

+0

謝謝,你是對的它現在工作! – Ned007

+0

@ Ned007標記爲答案,如果它幫助 – Sajeetharan

0

如果我的理解它正確地說,你的構造函數設置你的類值等於類型而不是傳入的值。

+0

請參閱我指的是@Sajeetharan。 –

+0

感謝它的工作 – Ned007

0

問題出在您的ChatMessage構造函數上。鍵被重命名爲單個字符,但它們不在構造函數的主體中使用。

應該是:

constructor({ 
    message: m, 
    user: u='Nader', 
    timestamp: t=(new Date()).getTime() 
    }) { 
    this.message = m; 
    this.user = u; 
    this.timestamp = t; 
    } 
+0

你是絕對正確的,我這樣做,它的工作 – Ned007

相關問題