如何通过字符串访问JavaScript对象的属性?
如何通过字符串引用访问JavaScript对象的属性?
嘿,这问题太常见啦!你现在遇到的是JavaScript里点语法和方括号语法的核心区别——用arr.c的时候,JS会把c当成一个字面量属性名去查找,而不是你定义的变量c的值,所以自然拿不到arr.count的结果,反而会返回undefined(因为你的对象里根本没有叫c的属性)。
解决方法很简单,改用方括号语法就行:
var arr = {count:12, total:110}; var c = 'count'; console.log(arr[c]); // 输出12,和arr.count效果完全一致
原理是方括号里的内容会被JS先求值,它会把变量c解析成对应的字符串'count',再用这个字符串作为属性名去访问对象,完美实现你要的动态属性访问。
顺便补充两个实用小细节:
- 方括号里也可以直接写字符串字面量,比如
arr['total'],和arr.total效果完全相同 - 如果你的对象属性名包含空格、特殊字符(比如
-),或者是JavaScript关键字,那只能用方括号语法,比如:var obj = {'user-name': 'Vickey', 'my age': 25}; console.log(obj['user-name']); // 输出Vickey console.log(obj['my age']); // 输出25
内容的提问来源于stack exchange,提问作者Vickey
相关产品推荐
相关产品推荐

