如何将字符串形式的表达式片段作为参数实现动态方法调用?
动态调用JavaScript/jQuery方法的解决方案
要实现通过字符串变量动态调用方法,你需要使用方括号属性访问语法——点语法只能识别固定字面量的方法名,无法解析变量。
修正后的代码
let t = "val"; $('.class')[t](); // 用方括号解析变量t的值作为方法名
原理说明
- 点语法(
obj.method())要求method是一个固定的标识符,不能是变量; - 方括号语法(
obj[variable]())允许你用变量的值作为属性/方法名,以此实现动态调用。
关于补充说明的问题
如果之前的报错是因为重复定义变量,需要确保同一个作用域内变量只声明一次。避免如下错误写法:
let t = "val"; let t = "anotherVal"; // 重复声明变量,触发语法错误
改成仅声明一次,后续直接赋值:
let t = "val"; t = "anotherVal"; // 正确:重新赋值而非重复声明
内容的提问来源于stack exchange,提问作者alexanderzhirov
相关产品推荐
相关产品推荐

