我想我的函數返回一個錯誤代碼和一個字符串值,所以計劃使用return返回錯誤代碼並使用參數返回字符串值。但它不起作用。看起來我們不能從函數參數中返回一個值。任何想法如何從函數參數返回它?可能從JavaScript函數參數返回一個值嗎?
下面是一個示例代碼。我希望從sayHello的參數中獲得retVal。
function sayHello(name, retVal) {
retVal = "hello " + name;
return 1;
}
我想我的函數返回一個錯誤代碼和一個字符串值,所以計劃使用return返回錯誤代碼並使用參數返回字符串值。但它不起作用。看起來我們不能從函數參數中返回一個值。任何想法如何從函數參數返回它?可能從JavaScript函數參數返回一個值嗎?
下面是一個示例代碼。我希望從sayHello的參數中獲得retVal。
function sayHello(name, retVal) {
retVal = "hello " + name;
return 1;
}
你也許可以這樣做,傳回一個對象。
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.
PSL的解決方案是最好的,但如果你真的想知道如何通過參數返回它,唯一的辦法就是使用一個對象,因爲對象是通過引用傳遞的,不可複製的(請注意,數組是對象):
var hello = [];
sayHello("Paul", hello); // "hello[0] === "hello Paul"
function sayHello(name, retVal) {
retVal[0] = "hello " + name;
return 1;
}
要做到這一點與一個對象,而不是一個數組(不要更好,沒有更壞),你會'var hello = {};'和'redVal.message =「你好「+名字;' – Jeff
您的問題仍然無效JavaScript。目前的問題仍然是相同的或與前一個類似,QtScript can't call function with argument type "QString &"
你需要的只是谷歌「在JavaScript中返回多個值」,如Returning multiple values in javascript?
感謝PSL什麼,我會採取第一種方法。 – zhongzhu
@zhongzhu歡迎您..不錯的選擇.. :) – PSL