如果我有这个 ES6 函数声明和调用:
function myFunction (arg1, arg2 = "bob") {
console.log("arguments", arguments);
}
myFunction(1);
...console.log()
语句仅显示一个值为“1”的参数。 “鲍勃”无处可寻。这是预期和/或期望的行为吗?我希望默认值在 arguments
对象中可用。如果没有,有没有办法以其他方式动态获取所有参数+默认值?
提前致谢!
最佳答案
是的,这是预期和期望的。 arguments
对象是传递给函数的值的列表,没有别的。
它没有隐式链接到参数变量(被分配默认值),就像它处于草率模式一样。
Is there a way to dynamically get all arguments + defaults in some other manner?
没有。你有什么参数以及它们是否有默认初始化器是静态的,你不需要在这里动态地做任何事情。您可以为示例函数执行 Object.assign([], arguments, [arg1, arg2])
。
关于javascript - ES6 默认值在 function.arguments 中不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37705850/