我有两个函数,我试图从第二个函数返回一些东西。不确定我做错了什么。我一直在undefined
处于警报状态。
function a(){
var testMe = b("hello");
alert(testMe);
}
function b(theVar){
var returnVar = theVar;
return returnVar;
}
答案 0 :(得分:2)
正如您在此处所见,正在运作:http://jsfiddle.net/hCGu8/
<强> CODE 强>
function a(){
var testMe = b("hello");
alert(testMe);
}
function b(theVar){
var returnVar = theVar + " returned";
return returnVar;
}
a();
答案 1 :(得分:0)
这听起来对我来说......事实上我碰巧在警报中“打招呼”:
function a(){
var testMe = b("hello");
alert(testMe);
}
function b(theVar){
var returnVar = theVar;
return returnVar;
}
a();
答案 2 :(得分: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); });