代码之家  ›  专栏  ›  技术社区  ›  tau

在另一个对象中重用对象

  •  0
  • tau  · 技术社区  · 14 年前

    var parent = { //parent object with a bunch of stuff in it
        countryAlerts:{ //area for country alerts
            "USA":{ //country
                en:"FAST", //alert text in English
                es:"RAPIDO" //alert text in Spanish
            },
            "Japan":{
                en:"FAST",
                es:"RAPIDO"
            }
        }
    }
    

    我想这样做:

    var parent = {
        countryAlerts:{
            "USA":fast,
            "Japan":fast
        }
    }
    
    var fast = {
        en:"FAST",
        es:"RAPIDO"
    }
    

    parent.countryAlerts.USA.LANGUAGE .

    感谢您的帮助。

    谢谢!

    2 回复  |  直到 14 年前
        1
  •  2
  •   nickf    14 年前

    是的,这是可能的,你只需要定义 fast 第一:

    var fast = {
        en: "FAST",
        es: "RAPIDO"
    };
    var parent = {
        countryAlerts: {
            "USA" : fast,
            "Japan" : fast
        }
    };
    
    var lang = "en";
    
    alert(parent.countryAlerts.USA[lang]); // "FAST"
    

    注意使用方括号表示法通过变量名访问对象的成员。

    编辑

    啊,太傻了。谢谢!我还有一个问题。假设我想在父对象中快速存储。

    你是说,像这样(伪代码)?

    var parent = {
        fast : {
            en : "FAST",
            es : "RAPIDO"
        },
        countryAlerts : 
            "USA" : fast    // ** magic here
            "Japan" : fast  // **
        }
    };
    

    var parent = {
        fast : {
            en : "FAST",
            es : "RAPIDO"
        }
    };
    parent.countryAlerts = {
        "USA" : parent.fast,
        "Japan" : parent.fast
    };
    
        2
  •  1
  •   Matthew Flaschen    14 年前

    var parent = new (function()
    {
        var fast = {
          en: "FAST",
          es: "RAPIDO"
        };
    
        this.countryAlerts = {
            "USA" : fast,
            "Japan" : fast
        };
    })();