这是否有区别:
var test = function(callback) {
callback(4);
return;
};
test(function(x) { alert(x); });
这个(注意回调调用实际上已经返回):
var test = function(callback) {
return callback(4);
};
test(function(x) { alert(x); });
答案 0 :(得分:11)
第一个在调用时总是返回undefined
。第二个返回任何callback(4)
返回。顺便提一下,在您的示例中也是undefined
。
答案 1 :(得分:2)
他们都返回undefined
,所以没有任何区别。但是第二个返回undefined,因为回调返回undefined。第一个只是毫无例外地返回undefined。
例如:
var y = test(function(x){ return x*2; });
在您的第一个变体y
中分配值undefined
。在第二个中,它获得值8
(callback(4)
的返回值。
答案 2 :(得分:1)
第一个示例执行回调函数并返回undefined
。
第二个函数返回回调函数返回的值; ;