我可以在Firebug中使用console.log()查看回调函数的结果吗?

时间:2009-10-12 19:38:54

标签: javascript console firebug

使用下面的示例,是否可以将回调函数的结果发送到控制台,即返回的值?

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

我将使用什么作为参数:console.log(?)

2 个答案:

答案 0 :(得分:2)

您可以在返回之前始终进行日志记录,并重构以支持轻松记录。除此之外,返回值将丢失给sort函数。

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;
 });

答案 1 :(得分:0)

您可以随时利用Javascript中的函数作为第一类对象,并使用类似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;
}));