javascript - ES6 默认值在 function.arguments 中不可用?

标签 javascript ecmascript-6

如果我有这个 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/

相关文章:

javascript - React JS - 传递子组件的函数

javascript - ajax post 有大小限制吗?

javascript - 将实时音频流式传输到 Node.js 服务器

javascript - 从包访问 meteor 应用程序的导入目录?

javascript - Chrome 扩展程序在一段时间后停止工作。响应未定义

c# - 另一个 ASP.net AJAX SYS 未定义错误

ecmascript-6 - "SyntaxError: Unexpected token export"将 Jest 与 babel 7+ 结合使用

Javascript解构以填充现有对象

javascript - Angular 2组件中的继承

javascript - 这是将一个数组拆分为 2 个数组的最有效方法吗?