为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

千万里不及你 2019-08-02 07:02:00
创建一个具有动态属性名称的对象我试图这样做: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'}
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

您必须使用括号表示法分别添加这些属性:

var myAppConfig = {
    ...
    iconMap : { }
    ...};myAppConfig.iconMap[ KEYS.PHONE_TYPE ] = 'icon-phone';myAppConfig.iconMap[ KEYS.AGENT_TYPE ] = 'icon-headphones';



查看完整回答
反对 回复 2019-08-03
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

如果使用ES6(或类似Babel/Browserify),可以这样编写:

iconMap : { 
    [KEYS.PHONE_TYPE] : 'icon-phone', 
    [KEYS.AGENT_TYPE] : 'icon-headphones'};


查看完整回答
反对 回复 2019-08-03
  • 2 回答
  • 0 关注
  • 259 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信