如何将函数的实际参数转化为真正的数组?

1:24:00 PM 0 Comments


函数的arguments在JavaScript里只是一个类似数组的对象,和NodeList类似,拥有length属性,但没有push、pop和shift等数组中的方法,并不是真正意义上的数组,值得庆幸的是,我们可以通过数组的slice方法将arguments对象转换成真正的数组:



上述两种方式虽然实现的目的相同,但是两者在性能上有一些细微的差异。测试结果表明,在arguments.length较小的时候,方式2在性能上稍占优势,但是当arguments.length较大的时候,方式1就略胜一筹。

除此之外,还有第三种最传统最老土的方法:


在具体的应用中,还需结合实际情况,灵活选择最合适的方式,下边的实例展示了转换前后的差异。




Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.