Javascript: Arguments
Javascript: Arguments
本文关键字:Arguments Javascript 更新时间:2023-09-26
函数1
function myConcat (separator) {
var args = Array.prototype.slice.call(arguments, 1);
return args.join(separator);
}
var a = myConcat(", ", "red", "orange", "blue");
功能2
function myConcat () {
var args = Array.prototype.slice.call(arguments, 1);
return args.join();
}
var a = myConcat(", ", "red", "orange", "blue");
有人能告诉我为什么这两者之间有区别吗?
非常感谢
问题变了,答案也变了。
在1中,函数让您决定使用哪个分隔符,并将其作为第一个参数。您不需要定义分隔符参数,但出于可读性的原因,这可能很方便,也就是说,查看函数的程序员可以立即理解第一个参数是使用的分隔符。
同样的结果也可以在不定义它的情况下实现,只需假设第一个参数是要使用的分隔符:
function myConcat () {
// transform array like object in array
var args = Array.prototype.slice.call(arguments, 0);
// remove first element and use it as separator
var separator = args.shift();
// join other arguments with separator
return args.join(separator);
}
var a = myConcat(", ", "red", "orange", "blue");
document.getElementById('result').innerHTML = a;
<div id="result"></div>
这里的分隔符使用CCD_ 1函数,该函数移除并返回数组的第一个元素。
如果你想知道slice
的部分到底在做什么,就是简单地将类似arguments
阵列的对象转换为真正的阵列
在2中,分隔符是固定的,是js join
函数的默认分隔符,它是逗号。同时调用2并将逗号作为第一个参数也是NONSENSE,要编写有意义的2,您应该这样做:
function myConcat () {
var args = Array.prototype.slice.call(arguments, 0);
return args.join();
}
然后这样称呼它:var a = myConcat("red", "orange", "blue");
您不必将分隔符传递给函数,您也可以这样编写代码:
function myConcat () {
var args = Array.prototype.slice.call(arguments);
return args.join(', ');
}
var a = myConcat("red", "orange", "blue");
console.log(a);
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- Javascript + HTML with Arguments
- JavaScript:为什么我们在函数中使用 **arguments** 对象
- 是否可以在JavaScript中使用名为“arguments”的参数
- Javascript Q Promise Sequence Order with Arguments
- 这在Javascript中意味着什么“;typeof(arguments[0])”;
- Javascript对象:使用Arguments作为对象属性
- Javascript function arguments with "-"
- Javascript: Arguments
- 匿名递归-任何替换javascript'arguments.calleyee'到其他符号,例如'
- javascript的python版本's arguments对象-它是否存在
- JavaScript“arguments”是否包含“this”
- 如何在JavaScript中引用Arguments类
- 可以访问Arguments类吗?在JavaScript
- Node.js中的Function Arguments对象与Chrome' js中的JavaScript不同
- 为什么当您试图修改javascript arguments对象时,它的行为如此奇怪
- Eloquent Javascript-第4章关于Arguments对象
- 在javascript中使用Apllying arguments;不起作用
- JavaScript API文档-functionName([value[,arguments]])表示法是什么意思