在js中,访问对象属性的方式有两种,使用点操作符(.)或使用中括号操作符([])。
1、使用点操作符(.)来访问属性
objectName.propertyName
这里,objectName是对象名称,propertyName是属性名称。
例如student.name,表示访问student对象的name属性值。
2、使用中括号操作符([])来访问属性
objectName[propertyName]
例如student[‘name’]表示访问student对象的name属性值。
这两种对象属性的访问方式的不同之处主要有两点:
1、点操作符是静态的,只能是一个以属性名称命名的简单描述符,而且没办法修改;而中括号操作符是动态的,可以传递字符串或变量,而且还支持在运行时修改。
var student = {}; student.name = "小明"; var myName = 'name'; console.log(student.myName); // undefined 访问不到对应的属性 console.log(student[myName]); // 小明
2、点操作符有个局限,不能以数字作为属性名,但是中括号操作符可以。
var obj = {}; obj.1 = 1; // 抛异常 Unexpected number obj[2] = 2;
不过,使用点操作符(.)来访问对象属性可以满足大部分的场景。遇到点操作符不能满足的场景,换用[]即可。