arguments对象是类似于数组的对象, 与传递给函数的参数相对应。你可以将其用于处理递归函数参数。要确定函数签名中的参数数量, 请使用length属性。
分析下面的示例, JoinStringsInFunctions将返回一个字符串, 该字符串由每个参数中所有给定的字符串组成:
// Note that the function doesn't expect any argument yet !function JoinStringsInFunctions() {
var receivedArguments = Array.prototype.slice.call(arguments, 0);
// This will make the arguments as an array and will include all the items on itreturn receivedArguments.join("-");
}// Then executevar finalText = JoinStringsInFunctions("Hello", "From", "Our Code World");
console.log(finalText);
// Output : "Hello-From-Our Code World"
【参数对象如何在javascript中工作】显然, 这是一个非常简单的函数, 我们需要检查类型(仅连接字符串)等。但是, 如果该函数需要参数, 则需要更改slice函数的索引:
function JoinStringsInFunctions(separator) {
// change the 0 to 1 to expect the first parameter
var receivedArguments = Array.prototype.slice.call(arguments, 1);
return receivedArguments.join(separator);
}// Then executevar mySeparator = "<
- >
";
var finalText = JoinStringsInFunctions(mySeparator, "Hello", "From", "Our Code World");
console.log(finalText);
// Output: "Hello<
- >
From<
- >
Our Code World"
创建一个HTML列表我们将使用所有接收到的参数创建一个html列表, 但是我们期望第一个参数(ul或ol)中的列表类型为:
function CreateList(listType){
var args = Array.prototype.slice.call(arguments, 1);
// Expects the first parameter
var html = "<
"+listType+">
";
for(var i = 0;
i <
args.length;
i++){
var item = args[i];
html += '<
li>
'+item+'<
/li>
';
}
html += "<
/"+listType+">
";
return html;
}CreateList("ul", "Hello", "From", "Our", "Code", "World");
// Outputs : <
ul>
<
li>
Hello<
/li>
<
li>
From<
/li>
<
li>
Our<
/li>
<
li>
Code<
/li>
<
li>
World<
/li>
<
/ul>
推荐阅读
- 如何将”this”上下文绑定到扩展React.Component的类中的自定义函数
- Linux(程序设计):27---iconv库(转换字符编码)
- 六mysql日志管理
- Window10用CMD修改取消administrator密码
- Linux(程序设计):26---字符集与字符编码概述(附Unicode字符集实现原理)
- 七备份恢复
- Linux文件权限三(特殊权限SUID SGID SBIT)
- Linux(程序设计):66---简略版的线程池设计
- 八mysql主从复制基础