Console.log에서 개체의 현재 상태를 표시하는 방법
console.log를 사용하여 개체를 출력할 때 다음과 같은 문제가 발생할 수 있습니다. 표시된 객체가 console.log가 처음 호출되었을 때가 아닌 최종 실행 당시의 상태를 반영하는 문제입니다. 이러한 불일치는 추가 확장이 없는 Safari와 브라우저에서 특히 두드러질 수 있습니다.
문제:
다음 예를 고려하십시오.
var test = { a: true }; console.log(test); // {a: false} test.a = false; console.log(test); // {a: false}
여기서 시나리오에서는 'a' 속성의 실제 값이 변경되었음에도 불구하고 두 번째 console.log 호출이 {a: false}를 잘못 표시합니다. 'false'로 할당되었습니다.
해결 방법: console.dir() 사용
이 문제를 해결하고 console.log가 호출될 때 개체의 현재 상태를 표시하려면 , console.dir() 기능을 활용할 수 있습니다. console.log()와 달리 console.dir()은 호출 시 객체 속성의 디렉터리를 제공하여 객체 상태를 정확하게 표현합니다.
JSON 문자열화 사용:
또는 JSON 문자열화 및 구문 분석을 활용하여 유사한 결과를 얻을 수도 있습니다. 결과:
console.log(JSON.parse(JSON.stringify(obj)));
이 접근 방식에는 JSON.stringify()를 사용하여 개체를 JSON 문자열로 변환한 다음 JSON.parse()를 사용하여 다시 JSON 개체로 구문 분석하는 작업이 포함됩니다. 이렇게 하면 객체를 효과적으로 복제하여 현재 상태를 정확하게 표시할 수 있습니다.
위 내용은 `console.log`에 때때로 잘못된 개체 상태가 표시되는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!