4

我希望我的函数同时返回错误代码和字符串值,因此计划使用 return 返回错误代码并使用参数返回字符串值。但它不起作用。看起来我们无法从函数参数返回值。知道如何从函数参数返回它吗?

下面是一个示例代码。我希望从sayHello的参数中得到retVal。

function sayHello(name, retVal) {
    retVal = "hello " + name;
    return 1;
}
4

3 回答 3

11

您可能可以这样做,将对象传回。

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.
于 2013-07-03T01:49:22.673 回答
2

PSL 的解决方案是最好的,但如果你真的想知道如何通过参数返回它,唯一的方法是使用对象,因为对象是通过引用传递的,而不是复制的(注意数组是对象):

var hello = [];
sayHello("Paul", hello); // "hello[0] === "hello Paul"

function sayHello(name, retVal) {
    retVal[0] = "hello " + name;
    return 1;
}
于 2013-07-03T01:54:50.900 回答
0

您的问题仍然对 JavaScript 无效。当前问题与您之前的问题仍然相同或相似,QtScript 无法调用参数类型为“QString &”的函数

您需要的只是谷歌“在 javascript 中返回多个值”,例如在 javascript 中返回多个值?

于 2013-07-03T05:32:23.527 回答