我有这个JavaScript函数:
function test() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState==4 && xhr.status==200) {
var obj = JSON.parse(xhr.responseText);
document.title = obj.page_title;
}
}
xhr.open("GET", "title.php", true); xhr.send();
}
我的问题是:有什么区别:
obj.page_title
和obj["page_title"]
他们都对我很好,并返回相同的价值。
答案 0 :(得分:1)
两者是相同的:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects
如果要使用变量,括号选项很有用:
1. Group1.1
1. Group2.1
1. Group3.1
1.ItemDetails1
2.ItemDetails2
2. Group3.2
1.ItemDetails3
2.ItemDetails4
2. Group 2.2
1. Group3.3
1.ItemDetails5
2.ItemDetails6
2. Group3.4
1.ItemDetails7
2.ItemDetails8
2.Group1.2
或者如果您的属性名称中包含空格等异常字符:
var key = 'page_title';
obj[key];
答案 1 :(得分:-1)
唯一区别在于您使用的是带有空格的密钥,或者密钥存储在变量中。
这不起作用
obj.i have a space = "foobar";
但这会
obg['i have a space'] = "foobar";
如果您的密钥存储在变量中,则此括号表示法优于点表示法。
var o = {
foo: bar,
hello: world
}
for(var key in o){
console.log(o[key]);
}