2010-02-27 27 views
5

我有一個非常簡單的問題(和試探性答案),我只想看看是否有更好的答案。Javascript - 當標識符字符串存儲在var時訪問對象成員

當成員標識符存儲在另一個變量中時,如何訪問javascript中的對象成員?例如:

state = 'sync'; 

messages = { 
    'sync': 'asdf', 
    'ready': 'asdf', 
    'complete': 'asdf' 
}; 

可能性: 1.消息= eval('messages.' + state);

  • 轉消息轉換爲哈希值(在原型或jquery的 - 不是關於jquery的肯定),並通過訪問該框架的方法
  • 還有什麼其他方法?什麼東西更乾淨?在PHP中,這將是簡單的$message = $messages->$sync

    我敢肯定,這個問題已經回答了很多次,但它是艱難的尋找......我得到的是,當我搜索「變量變量」

    感謝EVAL反應

    回答

    9
    var message = messages[state]; 
    

    JavaScript中的每個對象不僅僅是一個更常見的對象,它也是一個由其成員填充的字典。

    +0

    謝謝。不知道你可以把對象當成一個散列。 – joshs 2010-02-27 23:44:45

    +1

    短而甜美,正確。順便說一句,喬希,這個作品是否你的消息對象的屬性名稱用引號引起來。 – Robusto 2010-02-27 23:46:34

    相關問題