2013-06-03 90 views
-12

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

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

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

工作正常,我。当我调用'a()'时,除非你没有谈论'a'中的警报。 – epascarello

+0

它适合我。请发布[JSFiddle](http://jsfiddle.net)。 – Doorknob

+2

显示你如何调用功能 – Curt

回答

2

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

CODE

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

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

a(); 
+2

谁是downvoting,至少解释为什么。 – BeNdErR

+5

我想这是因为这只是OP问题的一个副本,说一切正常。我认为OP的问题在别的地方。 – andlrc

+0

由SeeleyBoothe提供的数据,解决方案是一切正常.. – BeNdErR

0

这声音我的权利......事实上,我可要提醒有“你好”:

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

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

a(); 

http://jsfiddle.net/u7zPY/

+0

是的。我也是这样做的。同样的结果。 –

+0

代码没有问题。 – crush

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); }); 
相关问题