充分利用javascript参数对象
八月 9th, 2009
Posted in
前端开发&架构By
lujo Tags: javascript
在javascript中,参数是传递给函数的变量,可以理解为一个自动售货机,你投入什么面值的硬币就给出什么样的商品。硬币就是arguments,一下是一般的使用参数的方法。
(function (str1, str2) {
alert( str1 + str2);
})('left', 'er');
// returns 'lefter';
但是这样在有些时候访问参数并不是很方便,因此javascript提供了Arguments对象。
(function () {
alert(arguments[0] + arguments[1];)
})('left','er');
// returns 'lefter'
在我们不确定有多少参数的时候更能体现Arguments对象的好处。
function concatenate () {
var result = '' ";
for(var i=0; i <arguments.length; ++i){
result += arguments[i];
}
return result;
}
concatenate('lefter', 'crockford', 'has', 'a', 'posse');
// returns 'leftercrocfordhasaposse'
javascript提供了两个方法call和apply,做为每一个function的属性,提供了很强的灵活性,看下面两个例子
function concatenate () {
return Array.prototype.slice.call(arguments).join('');
}
concatenate('douglas', 'crockford', 'has', 'a', 'posse');
// returns 'douglascrocfordhasaposse'
function concatenate (separator) {
return Array.prototype.slice.call(arguments, 1).join(separator);
}
concatenate(' ', 'lefter', 'crockford', 'has', 'a', 'posse');
// returns 'lefter crockford has a posse'

Give lefter a comment