3

객체를 사용하여 무언가를 수행하고 다른 객체를 두 번 실행하는 JavaScript 프로그램이 있다고 가정 해 보겠습니다.스택 추적 비교 (Chrome 개발자 도구)

Chrome 개발자 도구를 사용하여 프로그램을 디버깅 할 때 두 실행의 스택 추적을 자동으로 비교/비교하는 것이 가능합니까? 내 요청 뒤에있는 아이디어는 만약 내가 알 수없는 프로그램을 디버깅, 나는 다른 개체를 처리하는 방법, 그 차이를 알고 싶습니다. 프로그램의 어떤 지점에서 차이가 감지됩니다.

프로그램이 큰 경우 수동으로 실행을 모두 디버그하고 차이가 발생한 위치를 기억하려고하면 매우 귀찮을 수 있습니다.

답변

4

호출 스택이 출력되어야하는 실행 지점을 지정해야합니다. 두 경로가 같은 함수로 끝나면 마지막으로 console.trace() 호출을 넣을 수 있으며 콘솔에서 두 경로의 스택 출력을 얻을 수 있습니다.

예 :

var objA = { type: "a", val: 1 }; 
var objB = { type: "b", val: 2 }; 

function doSomething() { 
    console.log("do something"); 
    doFinalThing(); 
} 

function doSomethingElse() { 
    console.log("do something else"); 
    doFinalThing(); 
} 

function doFinalThing() { 
    console.trace(); 
} 

function init(obj) { 
    if (obj.type == "a") { 
     doSomething(); 
    } else { 
     doSomethingElse(); 
    } 
} 

init(objA); 
init(objB); 

enter image description here

+0

위대한 즉, 감사합니다! –