Javascript js-通行证及;重新组合多值
我不能在javascript返回语句中返回多个值。将这些值包装在js对象中是否有用?还是其他解决方案Javascript js-通行证及;重新组合多值,javascript,function,parameters,Javascript,Function,Parameters,我不能在javascript返回语句中返回多个值。将这些值包装在js对象中是否有用?还是其他解决方案 function buildSomething() var t = []; var x = []; var y = []; var h = []; var myValues = fnGetData(t,y,x,h); function fnGetData(t,y,x,h) { // do something // return t,
function buildSomething()
var t = [];
var x = [];
var y = [];
var h = [];
var myValues = fnGetData(t,y,x,h);
function fnGetData(t,y,x,h)
{
// do something
// return t,y,x,h
}
仔细查看代码,您似乎试图将多个值传递到一个函数中。为此使用对象是JavaScript中的常见习惯用法
var values = {
t: t,
x: x,
y: y,
h: h
};
它还使处理默认数据变得容易
function fnGetData(data) {
data.t = data.t || [];
data.x = data.x || ["default", "values"];
}
我不确定您是否在使用jQuery,但对于这一点,jQuery还有一个常见的习惯用法:
function fnGetData(data) {
$.extend(data, {
t: [],
x: ["intial", "values"]
});
}
您可以选择将它们作为数组或对象返回,其中对象是更符合逻辑的选择,因为您可以为属性提供清晰的名称,从而产生更好的代码。使用对象可能是最佳选择:
function getData(t, y, x, h) {
// ...
return {
t: t,
x: x,
y: y,
h: h
};
}
然后可以按名称访问返回对象中的任何值。按照其他人的建议,从函数返回对象是非常常见的。我可能会走那条路。对象也更容易处理,并且不太可能污染全局范围 如果需要调用示例中的函数,另一个选项是返回数组。如果需要使用
function.apply使用返回的值调用函数,则返回数组非常方便<代码>函数。应用
获取数组并将其转换为函数参数
例如:
someFunc.apply(this, [t,x,y,h]);
然后将它们引用为myValues.t[n]?返回一个值数组<代码>返回[t,y,x,h]