Javascript Obj-JS中的属性

Javascript Obj-JS中的属性,javascript,object,Javascript,Object,myObj[property]和myObj['property']之间有什么区别以及它们访问事物的方式 var key = 'property'; var myObj = { key: [2,3,6,8], property: ["matt", "black", "rodel"] }; 使用quoted和unquoted属性也有很大的区别吗?区别在于不能执行obj[property]除非property是一个保存字符串的变量,否则可以执行obj['property'],obj[pro

myObj[property]
myObj['property']
之间有什么区别以及它们访问事物的方式

var key = 'property';

var myObj = {
  key: [2,3,6,8],
  property: ["matt", "black", "rodel"]
};

使用
quoted
unquoted
属性也有很大的区别吗?

区别在于不能执行
obj[property]
除非
property
是一个保存字符串的变量,否则可以执行
obj['property']
obj[property]
(属性必须是字符串)或对象属性:


var key='property'// 正如注释中已经提到的那样,
'property'
是用作对象键的字符串文本

现在,
property
可能是一个变量,并具有一些其他值,例如:

var property = 'key';
myObj[property] === myObj['key']; // true
将是一个
true
语句

通常,最好直接使用对象键,而不是使用
数组
表示法

// preferred usage
myObj.key;
myObj.property;

// not recommended to use on objects, but only on arrays
myObj['key'];
myObj['property'];
但如果您的属性是动态的,并且您事先不知道值,那么可以使用数组表示法:

['key', 'property'].forEach( function( keyName ) {
    console.log( keyName + ' => ' + myObj[keyName] )
} );

您无意中提供了完美的示例代码:

var key='property';
var myObj={
key:[2,3,6,8],//此行*不*使用key变量!
物业:[“亚光”、“黑色”、“罗德尔”]
};
console.log(myObj[key]);//myObj['property']->myObj.property

console.log(myObj['key']);//myObj.key
myObj[property]
myObj['property']
之间的区别与
property
property'
之间的区别是一样的。如果你问“myObj[key]和
myObj['property']
之间的区别是什么”,那就更有意义了。答案没有区别。它们都可以访问对象中的
属性
值。一个使用变量值,另一个使用直接字符串访问。听起来您知道对象的属性可以由
person.name
person['name']
访问。然而,
person[name]
基本上是两者的混合体,只有在
name
确实存储字符串
“name”
的情况下才会引用同一事物。