我们在javascript中创建一个对象......
var myObj = {
name1: 'abc',
place1: 'xyz',
name2: 'mno',
place2: 'uvw',
};
现在当我们尝试访问place1时,我们应该怎么做?
myObj.place1 or myObj[place1]
答案 0 :(得分:1)
myObj.place1
可以直接使用,
myObj["place1"]
也可以直接使用。
但如果您想使用myObj[place1]
...此处place1
被视为来自变量的值,以使此工作正常使用..
var myObj = {
name1: 'abc',
place1: 'xyz',
name2: 'mno',
place2: 'uvw',
};
var Place1 = "place1";
myObj[Place1]
我们使用“。”当我们想要通过属性
访问js对象的值时使用点符号答案 1 :(得分:0)
在某些情况下,您无法使用“object-dot-attribute”: 例如:
var obj={
"hello world": 1,
"hello-world":2
}
obj.hello world //syntax error
obj.hello-world //this is understood as (obj.hello) - world, a subtraction
因此,获取这些属性的唯一方法是使用
obj["hello world"]
obj["hello-world"]
通常使用点更安全,因为任何IDE都可以检查属性是否已经创建并且可以推断出类型是否正确,所以我的建议是使用object-dot-notation,除非你不能。
另一种无法使用它的情况是,当您不知道属性的名称时,例如您是否将对象用作地图:
var map={};
function addUser(username,userId) {
map[userId]=username;
}
function getUserName(userId) {
return map[userId]
}
回到你的例子:
var myObj = {
name1: 'abc',
place1: 'xyz',
name2: 'mno',
place2: 'uvw',
};
获得该值的推荐方法是:
myObj.place2
但你可以使用
myObj["place2"]
答案 2 :(得分:0)
只要遵循以下规则,您就可以使用Dot符号:
属性必须是有效的JavaScript标识符,即一系列字母数字字符,也包括下划线(“_”)和美元符号(“$”),它们不能以数字开头。例如,object。$ 1有效,而object.1不是。
您也可以使用数字作为密钥。但请确保在对象[1]中使用括号表示法而不是object.1(这将引发错误)。
http://javascriptissexy.com/javascript-objects-in-detail/
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Property_accessors