这是我的代码:
var Evalcard = function(number) {
if (number == 1) {
this.name = "Ace";
this.value = 11;
}
else if (number == 11) {
this.name = "Jack";
this.value = 10;
}
else if (number == 12) {
this.name = "Queen";
this.value = 10;
}
else if (number == 13) {
this.name = "King";
this.value = 10;
}
return {this.name,this.value};
我很确定这个return
语句不正确。如何使函数返回多个值?任何帮助都会很棒。
答案 0 :(得分:6)
在这种情况下,您可能希望返回数组或对象文字:
return { name: this.name, value: this.value };
// later: EvalCard(...).name; EvalCard(...).number;
return [ this.name, this.value ];
// later: EvalCard(...)[0]; EvalCard(...)[1];
答案 1 :(得分:2)
这个怎么样:
return [this.name, this.value];
答案 2 :(得分:2)
你可以传递一个对象文字,因为你接近这样做:
return { name:this.name, value:this.value };
或者您可以传递数组:
return [this.name, this.value];
当然,如果您的代码是在全局上下文中执行的,那么您将在name
对象上设置value
和window
。如果您使用Evalcard
作为构造函数,则不会需要一个return语句,正在创建的对象将自动设置:
var e = new Evalcard(1);
console.log(e.name); //outputs "Ace" if you remove the return statement.
答案 3 :(得分:1)
工作示例:http://jsfiddle.net/CxTWt/
var Evalcard = function(number) {
var evalName, evalValue;
if (number == 1) {
evalName= "Ace";
evalValue = 11;
}else if (number == 11) {
evalName = "Jack";
evalValue = 10;
}else if (number == 12) {
evalName= "Queen";
evalValue= 10;
}else if (number == 13) {
evalName= "King";
evalValue = 10;
}
return {name: evalName, value: evalValue};
}
alert(Evalcard(1).name+" "+Evalcard(1).value);
答案 4 :(得分:1)
尝试:
return [this.name, this.value];
答案 5 :(得分:1)
试试这个......
function xyz() {
...
var x = 1;
var y = 'A';
return [x, y];
}
var a = xyz();
document.write('x=' + a[0] + ' and y = ' + a[1]);
答案 6 :(得分:0)
您需要更改它以返回数组或为要返回的对象提供键
所以
return [this.name,this.value];
或
return {name:this.name,value:this.value};
答案 7 :(得分:0)
我会返回一个对象:
return {key1:value1, key2:value2}
然后你可以像这样引用它:
myReturn.key1;
答案 8 :(得分:0)
您可以通过多种不同的方式返回它:
阵列
return [this.name,this.value];
对象
return {first:this.name, second:this.value};
字符串
return this.name+":"+this.value;