我希望我的函数返回错误代码和字符串值,因此计划使用return返回错误代码并使用参数返回字符串值。但它不起作用。看起来我们无法从函数参数返回值。知道如何从函数参数中返回它吗?
以下是示例代码。我希望从sayHello的参数中得到retVal。
function sayHello(name, retVal) {
retVal = "hello " + name;
return 1;
}
答案 0 :(得分:9)
你可以这样做,传回一个物体。
function sayHello(name) {
retVal = "hello " + name;
return {code: 1, message: retVal};
}
//And while calling
var returnVal= sayHello("something");
var code = returnVal.code;
var msg= returnVal.message;
retVal在外面可用的原因是因为函数内部范围内的变量提升。但是你也可以通过不将其作为参数传递来解决这个问题。
var retVal; //Define it in an outer scope.
function sayHello(name) {
retVal = "hello " + name;
return 1;
}
var returnVal= sayHello("something");
alert(returnVal);
alert(retVal); //Now get it here.
答案 1 :(得分:2)
PSL的解决方案是最好的,但如果你真的想知道如何通过参数返回它,唯一的方法是使用一个对象,因为对象是通过引用传递的,而不是复制的(注意数组是对象):
var hello = [];
sayHello("Paul", hello); // "hello[0] === "hello Paul"
function sayHello(name, retVal) {
retVal[0] = "hello " + name;
return 1;
}
答案 2 :(得分:0)
您的问题对JavaScript无效。当前问题与您之前的问题QtScript can't call function with argument type "QString &"
相同或类似你需要的只是谷歌“在javascript中返回多个值”,如Returning multiple values in javascript?