1233333333333333333333333

javascript函数参数

为参数赋初值
JavaScript中没有重载的概念,不过JavaScript中函数的参数都是可选的,如果调用时少写了一个参数,将会被undefined所代替。

eg:

function Add(A, B) { return A + B; } plus(5); // NaN

此处Add(5)与Add(5, undefined)是等价的,5 + undefined的结果是NaN。 

 

将arguments转化为数组
函数中的预定义变量arguments并非一个真正的数组,而是一个类似数组的对象。 
它具有length属性,但是没有slice, push, sort等函数,那么如何使arguments具有这些数组才有的函数呢? 
也就是说如何使arguments变成一个真正的数组呢?

function args() { return [].slice.call(arguments, 0); } args(2, 5, 16); // [2, 5, 16]
修改arguments
比如,添加一个值到arguments中:
function add() { arguments.push('new value'); } add(); // error - arguments.push is not a function
这样会出错,因为arguments不是一个真正的数组,没有push方法。 
解决办法:
function add() { Array.prototype.push.call(arguments, 'new value'); return arguments; } add()[0]; // "new value"
posted @ 2015-06-06 15:57  hghrpg  阅读(187)  评论(0编辑  收藏  举报
1233333333333333333333333