1

这之间有区别吗:

var test = function(callback) {
    callback(4);
    return;
};

test(function(x) { alert(x); });

而这个(注意回调调用实际上是返回的):

var test = function(callback) {
    return callback(4);
};

test(function(x) { alert(x); });
4

3 回答 3

11

第一个总是undefined在调用时返回。第二个返回任何callback(4)返回。顺便说一句,在您的示例中,这也是undefined.

于 2013-08-02T21:36:08.937 回答
2

他们都返回undefined,所以没有没有区别。但是第二个返回未定义,因为回调返回未定义。第一个只是返回 undefined 无一例外。

例如:

var y = test(function(x){ return x*2; });

在您的第一个变体y中,分配了 value undefined。在第二个它获取值8(返回值callback(4)

于 2013-08-02T21:37:49.530 回答
1

第一个示例执行回调函数并返回undefined.

第二个函数返回回调函数返回的值;

于 2013-08-02T21:36:20.660 回答