这两个例子的区别?

时间:2013-08-02 21:33:53

标签: javascript

这是否有区别:

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

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

这个(注意回调调用实际上已经返回):

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

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

3 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:2)

他们都返回undefined,所以没有任何区别。但是第二个返回undefined,因为回调返回undefined。第一个只是毫无例外地返回undefined。

例如:

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

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

答案 2 :(得分:1)

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

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