84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
今日、JS オブジェクトについて説明している本を見ましたが、よく理解できない例がありました
ここでの [object Object] は、このステップ myObject[myObject] = "foo"; の myObject の暗黙的な型変換によって取得されるため、ここでの [object Object] は単なる変換された文字列ですが、オブジェクト内では '[object Object]' として扱われます。値「foo」をキーとして保存します。
myObject[myObject] = "foo";
リーリー
これはオブジェクトキー名の暗黙的な変換の問題です。 次の例を現地語で説明してみましょう:
A オブジェクトがあり、B オブジェクトを A オブジェクトのキー名として渡したいのですが、オブジェクトのキー名はすべて文字列であるため、B オブジェクトは toString() メソッドを呼び出して変換します。文字列 "[ object Object]" に変換して、A オブジェクトのキー名としてデータを格納します。インスタンス内のデータは、この "foo" 文字列です。
特別な注意が必要なもう 1 つの点は次のとおりです。 ご質問の A オブジェクトと B オブジェクトは同じであり、非常に混乱を招くため、それらを区別するために新しい mykey を宣言しました。
出力結果は true です。これは、「[object Object]」が {} と等しくないが、toString() メソッドを渡した後にオブジェクトによって返された文字列と等しいことを証明します
上記の 3 行のコードは、「[object Object]」が toString() メソッドを渡した後にオブジェクトによって返される文字列と等しいことを再度証明します
キー値は自動的に文字列に変換されます
ここでの [object Object] は、このステップ
myObject[myObject] = "foo";
の myObject の暗黙的な型変換によって取得されるため、ここでの [object Object] は単なる変換された文字列ですが、オブジェクト内では '[object Object]' として扱われます。値「foo」をキーとして保存します。リーリー
リーリー
これはオブジェクトキー名の暗黙的な変換の問題です。
次の例を現地語で説明してみましょう:
A オブジェクトがあり、B オブジェクトを A オブジェクトのキー名として渡したいのですが、オブジェクトのキー名はすべて文字列であるため、B オブジェクトは toString() メソッドを呼び出して変換します。文字列 "[ object Object]" に変換して、A オブジェクトのキー名としてデータを格納します。インスタンス内のデータは、この "foo" 文字列です。
特別な注意が必要なもう 1 つの点は次のとおりです。
リーリーご質問の A オブジェクトと B オブジェクトは同じであり、非常に混乱を招くため、それらを区別するために新しい mykey を宣言しました。
リーリー
キー値は自動的に文字列に変換されます