-12

我有两个函数,并试图从第二个函数返回一些东西。不知道我做错了什么。我不断收到undefined警报。

function a(){
    var testMe = b("hello");
    alert(testMe);  
}

function b(theVar){
    var returnVar = theVar;
    return returnVar;   
}
4

3 回答 3

2

正如你在这里看到的,正在工作:http: //jsfiddle.net/hCGu8/

代码

function a(){
    var testMe = b("hello");
    alert(testMe);  
}

function b(theVar){
    var returnVar = theVar + " returned";
    return returnVar;   
}

a();
于 2013-06-03T12:35:21.317 回答
0

这听起来对我来说是正确的......事实上我在警报中碰巧有“你好”:

function a(){
    var testMe = b("hello");
    alert(testMe);  
}

function b(theVar){
    var returnVar = theVar;
    return returnVar;   
}

a();

http://jsfiddle.net/u7zPY/

于 2013-06-03T12:35:03.310 回答
0

您的问题主题说“从函数返回”并且您的标签提到jQuery,而问题中的代码工作正常。

我正在假设您已将测试用例缩减得太远并从中删除了问题(将来,请测试您缩减的测试用例以确保它们仍然证明问题!)并且您实际上有这样的事情:

function a() {
    var result = jQuery('foo').on('click', function () { return 1; });
    //                         ^^ This being the on function
}

……你想result平等1

这是不可能的。

on只需分配一个事件处理程序以稍后运行。的执行a将在该事件触发之前完成。您不能从事件处理程序将任何内容返回给分配它的函数。

您可以使用回调,您可以在其中定义在数据可用时运行的函数。这与您作为第二个参数传递给的函数完全相同on

function a(callback) {
    var result = jQuery('foo').on('click', function () { callback(1); });
}

a(function (result) { alert(result); });
于 2013-06-03T12:40:00.613 回答