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”
的情况下才会引用同一事物。