JavaScript:对象的奇怪行为
有人能解释一下这背后的确切逻辑吗JavaScript:对象的奇怪行为,javascript,Javascript,有人能解释一下这背后的确切逻辑吗 var person={fname:"John",lname:"Doe",age:25}; person.fname; //it gives a output John for (x in person) { alert(person[x]); //works fine person.x; //incorrect why??? } 在循环中,x假设三个不同的值:fname、lname和age。通过执行person[x]您试图访问三个不同
var person={fname:"John",lname:"Doe",age:25};
person.fname; //it gives a output John
for (x in person)
{
alert(person[x]); //works fine
person.x; //incorrect why???
}
在循环中,x假设三个不同的值:fname、lname和age。通过执行person[x]
您试图访问三个不同的属性。这就像做person['fname']
,person['lname']
和person['age']
。它们与person.fname
、person.lname
和person.age
相同,都是person对象的定义属性。如果您执行person.x
操作,则尝试访问未声明的属性x
,该属性正确返回undefined
[]
的用法也被称为括号表示法,这在迭代和其他事情中是需要的,例如为用户输入的对象设置动态属性(例如),但它们的使用范围很大
在循环中,x假设三个不同的值:fname、lname和age。通过执行person[x]
您试图访问三个不同的属性。这就像做person['fname']
,person['lname']
和person['age']
。它们与person.fname
、person.lname
和person.age
相同,都是person对象的定义属性。如果您执行person.x
操作,则尝试访问未声明的属性x
,该属性正确返回undefined
[]
的用法也被称为括号表示法,在迭代和其他情况下,如为用户输入的对象设置动态属性(例如),但是它们有很大的使用范围。这是因为Javascript无法决定是要访问object person的x属性(例如,如果person={x:100,y:65}),还是字符串值的属性
- 人员[x]将评估x的值
- person.x将接管财产x
- 人员[x]将评估x的值
- person.x将接管财产x
person.fname
将为您提供fname
对象的person
对象
var person = {fname:"John", lname:"Doe", age:25};
for (var x in person) {
alert(person[x]);
}
person.lname
将为您提供person
对象的lname
对象
var person = {fname:"John", lname:"Doe", age:25};
for (var x in person) {
alert(person[x]);
}
person.age
将为您提供age
对象的person
对象
var person = {fname:"John", lname:"Doe", age:25};
for (var x in person) {
alert(person[x]);
}
它将遍历person对象。
而在person.x中代码>“x”是person对象的未知属性
最好您先了解一些基本的javascript概念,然后。person.fname
将为您提供fname
对象的person
对象
var person = {fname:"John", lname:"Doe", age:25};
for (var x in person) {
alert(person[x]);
}
person.lname
将为您提供person
对象的lname
对象
var person = {fname:"John", lname:"Doe", age:25};
for (var x in person) {
alert(person[x]);
}
person.age
将为您提供age
对象的person
对象
var person = {fname:"John", lname:"Doe", age:25};
for (var x in person) {
alert(person[x]);
}
它将遍历person对象。
而在person.x中代码>“x”是person对象的未知属性
你最好先了解一些基本的javascript概念,并且。person.x
的工作方式与person.fname
的工作方式完全相同(你似乎对此没有意见)。我认为如果你也解释一下为什么你认为这个行为很奇怪,“person.x”不正确,可能会更好,因此,其他偶然发现这个问题的JavaScript学习者可以从您的经验中学习。person.x
的工作方式与person.fname
的工作方式完全相同(您似乎对此没有意见)。我认为,如果您也解释一下为什么您认为该行为奇怪而“person.x”不正确,可能会更好,因此,其他偶然发现这个问题的JavaScript学习者可以从您的经验中学习。