使用下面的示例,是否可以将回调函数的结果发送到控制台,即返回的值?
rows.sort(function(a, b) {
if(a.sortKey < b.sortKey) return -sortDirection;
if(a.sortKey > b.sortKey) return sortDirection;
return 0;
});
我将使用什么作为参数:console.log(?)
答案 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;
}));