猿问
下载APP

创建一个具有动态属性名称的对象

创建一个具有动态属性名称的对象

我试图这样做:

var KEYS = {} ;KEYS.PHONE_TYPE = 'phone-type';KEYS.AGENT_TYPE = 'agent-type';var myAppConfig = {
    ...
    iconMap : { 
        KEYS.PHONE_TYPE : 'icon-phone', 
        KEYS.AGENT_TYPE : 'icon-headphones'
    };
    ...};

但它失败了,并传达了一个信息:Expected ':' and instead saw '.'.

如何使用间接(非文字)键名初始化对象?

说清楚,我想要的结果是:

{
    'phone-type' : 'icon-phone',
    'agent-type' : 'icon-headphones'}


萧十郎
浏览 57回答 2
2回答

元芳怎么了

您必须使用括号表示法分别添加这些属性:var myAppConfig = {     ...     iconMap : { }     ...};myAppConfig.iconMap[ KEYS.PHONE_TYPE ] = 'icon-phone';myAppConfig.iconMap[ KEYS.AGENT_TYPE ] = 'icon-headphones';

慕慕森

如果使用ES6(或类似Babel/Browserify),可以这样编写:iconMap : {      [KEYS.PHONE_TYPE] : 'icon-phone',      [KEYS.AGENT_TYPE] : 'icon-headphones'};
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答