![](/img/trans.png)
[英]strange CSS / Javascript behavior when hovering over TEXTAREA or A objects
[英]JavaScript:strange behavior of Objects
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???
}
有人可以解釋一下這背后的確切邏輯嗎?
var person = {fname:"John", lname:"Doe", age:25};
for (var x in person) {
alert(person[x]);
}
在循環中,x假定三個不同的值: fname , lname和age 。 通過執行person[x]
您試圖訪問三個不同的屬性。 這就像在做person['fname']
, person['lname']
和person['age']
。 他們是同樣的事情person.fname
, person.lname
和person.age
,其被定義的人對象的屬性 。 如果執行person.x
,則嘗試訪問未聲明的屬性x
,該屬性正確返回undefined
。
[]
的用法也稱為括號符號 ,在迭代和其他情況下(例如,將動態屬性設置為用戶輸入給定的對象)是必需的,但是它們的使用范圍較大。
這是因為Javascript無法決定您是否要訪問對象person 的x屬性(例如,如果person = {x:100,y:65}) 還是字符串 x 的值 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.