PHP中文网2017-05-18 10:53:26
여기의 [object Object]는 이 단계에서 myObject의 암시적 유형 변환으로 인해 획득됩니다myObject[myObject] = "foo";
. 따라서 여기의 [object Object]는 변환된 문자열일 뿐이지만 개체에서는 '[object Object]'로 표시됩니다. 'foo' 값을 키로 저장합니다!
ringa_lee2017-05-18 10:53:26
이것은 객체 키 이름의 암시적 변환 문제입니다.
현지어로 설명된 다음 예를 들어보세요.
A 객체가 있는데 B 객체를 A 객체의 키 이름으로 전달하고 싶은데 객체의 키 이름이 모두 문자열이기 때문에 B 객체가 toString() 메서드를 호출해서 변환하게 됩니다. 데이터를 A 객체의 키 이름으로 저장하기 위해 문자열 "[ object Object]"에 연결합니다. 인스턴스의 데이터는 이 "foo" 문자열입니다.
특별한 주의가 필요한 또 다른 점은:
귀하의 질문에 있는 A 객체와 B 객체가 동일하여 매우 혼란스럽기 때문에 이를 구별하기 위해 새로운 mykey를 선언했습니다.
인쇄된 결과는 true입니다. 이는 "[object Object]"가 {}와 동일하지 않지만 toString() 메서드를 전달한 후 객체가 반환한 문자열과 동일함을 증명합니다
위 세 줄의 코드는 다시 증명됩니다. "[object Object]"는 toString() 메소드를 전달한 후 객체가 반환한 문자열과 동일합니다