簡體   English   中英

為什么我的javascript對象的值未定義?

[英]Why is my value of a javascript object undefined?

當我嘗試通過chrome控制台輸出對象值時,我總是變得不確定。 碼:

ws.on('message', function(message) {
     var JSONobj = {"cmd":"updatesb","name":"TestName"};
     console.log('JSON Name Value: %s', message.name); //<--does not work
     console.log('JSON Name Value: %s', JSONobj.name); //<----WORKS!!!!
});

ws.on中的message參數通過websocket通信傳遞{“ cmd”:“ updatesb”,“ name”:“ TestName”}。 第一個控制台輸出未定義。 第二個輸出是TestName。 為什么當message.name應該具有TestName的值時未定義,以及如何從message.name獲取該值?

聽起來您的message參數是一個字符串,而不是一個對象。

您可以通過調用JSON.parse()將該字符串解析為JSON。

嘗試:

 message.name = 'xxx';
 console.log('JSON Name Value: %s', message.name);

查看message.name成功。 正如其他人指出的那樣, message很可能不是您的想法。

也嘗試console.log(message); 並檢查輸出。

另外,可能是on處理程序接收到的信息多於消息,因此處理程序實際上應該看起來像function(something_else, message) ,但是如果不知道ws是什么,就很難知道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM