84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
var a={}, b={key:'b'}, c={key:'c'};
a[b]=123; a[c]=456;
console.log(a[b]);//出力は 456 です。 出力結果が 456 になる理由がわかりません。説明を手伝ってください。
业精于勤,荒于嬉;行成于思,毁于随。
JavaScript では、 が [] 访问对象属性时, 方括号中的表达式将会被求值并被转换成一个字符串,调用它的toString メソッドを渡すとき。つまり:
[]
toString
それではb 和 c 均转换成相同的字符串 [object Object]、再度割り当てると上書きされてしまいます
b
c
[object Object]
a[b]=123; この手順を実行すると、console.log(a) が突然わかります。
メソッドにオブジェクトを入れます。 b 当做 a 的属性,就会先调用对象b 的toString() リーリー
a
toString()
リーリー
JavaScript では、 が
リーリー[]
访问对象属性时, 方括号中的表达式将会被求值并被转换成一个字符串,调用它的toString
メソッドを渡すとき。つまり:
それでは
。b
和c
均转换成相同的字符串[object Object]
、再度割り当てると上書きされてしまいますa[b]=123; この手順を実行すると、console.log(a) が突然わかります。
メソッドにオブジェクトを入れます。
それで、b
当做a
的属性,就会先调用对象b
的toString()
リーリーリーリー