Javascript如何将值返回给调用函数
对于这个Javascript示例,请有人从一个非常基本的层面解释为什么这不起作用,以及如何正确地创建另一个(不是嵌套的)函数,将值传递回调用它的函数Javascript如何将值返回给调用函数,javascript,function,syntax,return,Javascript,Function,Syntax,Return,对于这个Javascript示例,请有人从一个非常基本的层面解释为什么这不起作用,以及如何正确地创建另一个(不是嵌套的)函数,将值传递回调用它的函数 function function1() { var x = 5; function2(x); console.log(y); function3(y); console.log(z); } function function2(y) { var y = y + 5; return
function function1() {
var x = 5;
function2(x);
console.log(y);
function3(y);
console.log(z);
}
function function2(y) {
var y = y + 5;
return y;
}
function function3(z) {
var z = z + 5;
return z;
}
即使在主函数中声明它们,也不起作用:
function function1() {
var x = 5;
var y = function2(x);
console.log(y);
var z = function3(y);
console.log(z);
当使用全局变量时,没有区别。我还尝试了以下其他示例,其中创建了一个全局对象来向其中写入全局变量,但在“未定义”的情况下也总是失败:
我想我不明白一些非常基本的概念。请放点光。我可以看到子例程正在运行并执行它们需要执行的操作,但它们从不将最终值传递回调用该函数的函数
后续问题
我请求一个API,在那里我得到一个室友。接下来,我尝试调用一个函数,该函数执行另一个API调用,以将roomId转换为roomName。我想将roomName传递回另一个函数,以便在那里使用它。我已经尝试了很多方法,直到现在都无法传回变量。正如前面的示例所示,它必须与其他内容(数组/对象、字符串/nostring/…)有关
因此,首先需要一个函数调用,在该调用中声明变量并为其指定特定值:
function invoke() {
var x, y = 0;
x = h(21);
y = g(42);
console.log(x);
console.log(y);
}
然后创建用于计算的函数:
function h(n) {
return n + 5;
}
function g(n) {
return n - 5;
}
现在,您只需调用函数invoke即可执行它:
invoke();
如果还要打印计算结果,请添加:
function invoke2(x,y) {
console.log(h(x));
console.log(g(y));
}
invoke2(21,42);
调用函数时,不要使用
函数function2(x)
。只需function2(x)
function2(x)代码>这是无效的javasacript。我猜你得到了一个意想不到的记号代码>错误。要定义嵌套函数,您必须像编写function function2(){/*do something*/}
一样编写其块。要调用函数,请放弃函数
标记。很抱歉,示例不正确。我更改了示例,因为我只调用了函数。它不起作用。我希望这能帮助你!
invoke();
function invoke2(x,y) {
console.log(h(x));
console.log(g(y));
}
invoke2(21,42);