JavaScript中如何将字符串作为属性名访问对象的对应属性
错误原因
你使用的点操作符访问属性时,会将.后的标识符作为固定的属性名处理,不会解析为对应的变量值,因此你现有代码实际访问的是str上名为operation的属性,而非变量operation存储的length属性。
修复方案
使用JS原生的方括号动态属性访问语法即可,无需修改参数传入形式,修改后的代码如下:
function sample(operation){ var str="hello"; // 方括号会将内部变量的解析值作为属性名访问 console.log(str[operation]); } sample("length"); // 预期输出 5
内容的提问来源于stack exchange,提问作者Sathwic
相关产品推荐
相关产品推荐

