2012-09-26 61 views
1

我有一个非常简单的问题ArrayList中,我需要创建一个函数的参数数组列表,到目前为止,我管理,以提醒他们一个接一个,但不能创建一个列表:创建函数参数

<span onclick="show_flights(1,2,3,4);">text</span> 

和功能

function show_flights() { 
    var list=''; 
    for (var x = 0; x < arguments.length; x++) { 
     alert(arguments[x]); 
     list.append(arguments[x]); 
    }; 
alert(list); 

谢谢大家的帮助,我真的很感激!

回答

4

你可以只直接转换arguments对象的数组:

function show_flights() { 
    var list = Array.prototype.slice.call(arguments, 0); 
    alert(list); 
} 

如果你有兴趣在如何/为什么这样的实际工作,有一个通过的ECMAScript规范读取的细节,特别是关于Array.prototype.slice方法的部分。总而言之,该方法将尝试通过遍历其属性并将它们添加到新数组(通过内部机制[[DefineOwnProperty]])从其调用的对象(其值this)创建一个数组。

+0

是的,谢谢!还剩11分钟 –

+0

@venom - 不客气,很高兴我可以帮忙:) –