JavaScript中动态属性名的字符串拼接技术名称及可行性咨询
关于JavaScript动态属性访问的两个问题
问题一:这类字符串替换生成属性名的技术专业名称是什么?
这种通过拼接字符串生成属性名、再动态访问对象属性的技术,专业上叫做计算属性访问(也常被称为动态属性名访问),核心是利用对象的方括号语法,通过表达式计算出属性名来访问或修改对象的属性。
问题二:你描述的方案在JavaScript中是否可行?
方案本身是可行的,但你写的代码存在语法错误,需要调整:
- 错误写法:
this.[flexchannelmute],正确写法要去掉点,改为this[flexchannelmute] - 另外
console.log里的变量也需要动态化,否则会一直固定输出Channel 1的状态
修正后的完整示例代码如下:
// 先从address中提取通道号,用正则匹配实现 const matchResult = address.match(/\/flx_mute\/(\d+)/); if (matchResult) { const channelNum = matchResult[1]; const mutestatus = message.args[0].value; const flexChannelMuteKey = `flexmute${channelNum}`; this[flexChannelMuteKey] = mutestatus === 1 ? "Muted" : "Unmuted"; console.log(`Flex Channel ${channelNum} is: ${this[flexChannelMuteKey]}`); }
通过这段代码,你只用一套逻辑就能处理所有32个通道的静音状态,无需重复编写代码。
内容的提问来源于stack exchange,提问作者Loren Zimmer
相关产品推荐
相关产品推荐

