var a={}, b={키:'b'}, c={키:'c'};
a[b]=123;a[c]=456;
console.log(a[b]);//출력은 456입니다. 왜 출력결과가 456인지 이해가 안가네요. 설명해주세요..
业精于勤,荒于嬉;行成于思,毁于随。
Javascript에서 가 [] 访问对象属性时, 方括号中的表达式将会被求值并被转换成一个字符串,调用它的toString 메소드를 통과할 때.So:
[]
toString
그래서 b 和 c 均转换成相同的字符串 [object Object]. 그래서 다시 할당하면 덮어쓰게 됩니다.
b
c
[object Object]
a[b]=123; 이 단계를 마치면 console.log(a)를 인쇄해 보세요
객체를 b 当做 a 的属性,就会先调用对象b 的toString()메소드에 넣습니다.
a
toString()
그래서,
Javascript에서 가
으아악[]
访问对象属性时, 方括号中的表达式将会被求值并被转换成一个字符串,调用它的toString
메소드를 통과할 때.So:
그래서
b
和c
均转换成相同的字符串[object Object]
. 그래서 다시 할당하면 덮어쓰게 됩니다.a[b]=123; 이 단계를 마치면 console.log(a)를 인쇄해 보세요
객체를
으아악b
当做a
的属性,就会先调用对象b
的toString()
메소드에 넣습니다.그래서,
으아악