2009-10-12 5 views
0

아래 예를 사용하면 콜백 함수의 결과를 콘솔에 보낼 수 있습니까? 즉, 반환되는 값은 무엇입니까?Firebug에서 console.log()를 사용하여 콜백 함수의 결과를 볼 수 있습니까?

rows.sort(function(a, b) { 
if(a.sortKey < b.sortKey) return -sortDirection; 
if(a.sortKey > b.sortKey) return sortDirection; 
return 0; 
}); 

나는 인자로 무엇을 사용합니다 : CONSOLE.LOG

+0

그것은 멋진 것입니다. 콜백 함수로서의 로그. – 0xcaff

답변

2

당신은 항상 당신이 반환하기 전에 로그인하고 쉽게 로깅을 지원하기 위해 리팩토링 수있다 (?). 그 이외의 경우 반환 값은 정렬 함수에서 손실됩니다.

rows.sort(function(a, b) { 
var returnVal = 0; 
if(a.sortKey < b.sortKey) returnVal = -sortDirection; 
else if(a.sortKey > b.sortKey) returnVal = sortDirection; 

console.log(returnVal); 
return returnVal; 
}); 
0

당신은 항상 자바 스크립트에서 객체 기능되는 첫 수업을 활용하고, 포장과 같은 AOP-함께 놀러 수 있습니다 : 당신이 콘솔을 제공 할 수 있다면

function addLogging(fn){ 
    return function() { 
    var result = fn.apply(null, arguments); 
    console.log(result); 
    return result; 
    } 
} 

var sortDirection = 1; 

[ {sortKey: 1}, {sortKey: 2}, {sortKey: 0} ].sort(addLogging(function(a, b){ 
    if(a.sortKey < b.sortKey) return -sortDirection; 
    if(a.sortKey > b.sortKey) return sortDirection; 
    return 0; 
})); 
관련 문제