【发布时间】:2010-09-15 10:37:29
【问题描述】:
如果我有这样的功能:
function doStuff(arg) {
arguments[0] = "4" + arg;
console.log(arg);
console.log.apply(null, arguments);
}
显然doStuff("name") 打印了两次“4name”。
arg 和 arguments[0] 指向同一个东西吗?我可以互换使用它们吗? javascript 在内部做了什么我应该注意的事情吗?有什么陷阱吗?
我知道参数处理传递的所有参数,而不仅仅是命名参数。我只关心它如何处理第一个(或第 n 个)参数。
[编辑]
我实际上是用这个作为
function name(arg) {
arguments[1] = args;
arguments[0] = "[INFO] " + args.callee + " arg: %o";
console.log.apply(this, arguments);
}
并在函数本身中调用name(arguments)。有趣的是,args.callee 打印出的是函数源代码而不是函数名。
【问题讨论】:
标签: javascript arguments