采用以下示例:
var obj = {};
obj.test1 = 'string'; // string
obj['test2'] = 'string'; // string
obj['test3'] = ['string']; // array
var key = 'test4';
//obj.key = 'string' // not working
var key = 'test5';
obj[key] = 'string'; // working
console.log(obj);
为什么可以使用数组表示法(方括号)访问对象属性:obj['test2'] = 'string';
?
为什么使用点表示法的test4
示例失败,但在test5
使用数组表示法?
答案 0 :(得分:3)
为什么可以使用数组表示法(方括号)访问对象属性:obj [' test2'] =' string';?
因为这是定义JavaScript工作的方式。这不是"数组符号&#34 ;;它是"方括号符号"。
为什么使用点表示法的test4示例失败,但在test5使用数组表示法?
obj.key
访问obj
上名为" key"的媒体资源。您的对象没有名为" key"的属性,因此生成undefined
。
obj[key]
将访问名称为存储在变量key
中的值的属性。 obj['test4']
将使用名称" test4"访问该媒体资源。和obj['te' + 'st4']
一样,等等。
方括号表示法允许根据字符串值访问属性。点表示法允许通过代码中实际写入的名称访问属性。