타사 애드온 / 애플리케이션 또는 JavaScript 객체에 대한 스크립트 디버거에서 객체 맵 덤프를 수행하는 방법이 있습니까?
상황은 다음과 같습니다. 메소드가 두 번 호출되고 매번 다른 것이 있습니다. 무엇이 다른지 잘 모르겠지만 뭔가 있습니다. 따라서 window (또는 적어도 window.document)의 모든 속성을 텍스트 편집기에 덤프 할 수 있다면 두 호출 간의 상태를 간단한 파일 diff로 비교할 수 있습니다. 생각?
타사 애드온 / 애플리케이션 또는 JavaScript 객체에 대한 스크립트 디버거에서 객체 맵 덤프를 수행하는 방법이 있습니까?
상황은 다음과 같습니다. 메소드가 두 번 호출되고 매번 다른 것이 있습니다. 무엇이 다른지 잘 모르겠지만 뭔가 있습니다. 따라서 window (또는 적어도 window.document)의 모든 속성을 텍스트 편집기에 덤프 할 수 있다면 두 호출 간의 상태를 간단한 파일 diff로 비교할 수 있습니다. 생각?
답변:
방화범 +console.log(myObjectInstance)
[object Object]. 아니 매우 유용합니다
console.log("my object: %o", myObj)
그렇지 않으면 때때로 다음과 같은 문자열 표현이 표시됩니다.
[object Object]
또는 일부.
my object: %o. :) 아니 매우 도움이
function mydump(arr,level) {
var dumped_text = "";
if(!level) level = 0;
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += " ";
if(typeof(arr) == 'object') {
for(var item in arr) {
var value = arr[item];
if(typeof(value) == 'object') {
dumped_text += level_padding + "'" + item + "' ...\n";
dumped_text += mydump(value,level+1);
} else {
dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
}
}
} else {
dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
}
if (level > 10) return level_padding + '<< too deep >>';
Chrome, Firefox 또는 IE10 +를 사용하는 경우 콘솔을 확장하고
(function() {
console.dump = function(object) {
if (window.JSON && window.JSON.stringify)
console.log(JSON.stringify(object));
else
console.log(object);
};
})();
간결한 브라우저 간 솔루션을 제공합니다.
다음을 사용하십시오.
console.dir(object);
클릭 가능한 멋진 객체 표현을 얻을 수 있습니다. Chrome 및 Firefox에서 작동
console.dir({bar:"foo"}); 개체가 toString 메서드를 덮어 쓰나요? 를 사용하여 콘솔 (F12 누르기)에서 테스트 할 수 있습니다 .
더 나은 가독성을 위해 다음과 같이 객체를 json 문자열로 변환 할 수 있습니다.
console.log(obj, JSON.stringify(obj));
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
Chrome에서 점 3 개를 클릭하고 도구 더보기를 클릭 한 다음 개발자를 클릭합니다. 콘솔에서 console.dir (yourObject)를 입력합니다. 예제 이미지를 보려면이 링크를 클릭하십시오.