Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ES6 Arrow函数中“参数”的官方信息?_Javascript_Ecmascript 6_Arrow Functions - Fatal编程技术网

Javascript ES6 Arrow函数中“参数”的官方信息?

Javascript ES6 Arrow函数中“参数”的官方信息?,javascript,ecmascript-6,arrow-functions,Javascript,Ecmascript 6,Arrow Functions,根据Babel的说法(从我最初的TC39建议中可以看出),这是“无效的”,因为arrow函数应该使用它们的父作用域作为参数。我能找到的唯一与此相矛盾的信息是一条评论,说这被TC39拒绝,但我找不到任何支持这一点的东西 只是在这里查找官方文档。Chrome、FF和node在这里似乎是错误的,Babel是正确的: 箭头函数在其作用域中没有自己的参数绑定;调用arguments对象时未创建arguments对象 在这里寻找官方文件 箭头函数表达式的计算结果是指向词法的,当调用这些函数时,不会创建。甚至

根据Babel的说法(从我最初的TC39建议中可以看出),这是“无效的”,因为arrow函数应该使用它们的父作用域作为参数。我能找到的唯一与此相矛盾的信息是一条评论,说这被TC39拒绝,但我找不到任何支持这一点的东西


只是在这里查找官方文档。

Chrome、FF和node在这里似乎是错误的,Babel是正确的:

箭头函数在其作用域中没有自己的
参数
绑定;调用arguments对象时未创建arguments对象

在这里寻找官方文件


箭头函数表达式的计算结果是指向
词法的
,当调用这些函数时,不会创建。甚至有一个特别的注释(18a)指出“Arrow函数从来没有参数对象。”

正如Bergi所指出的,Arrow函数没有自己的
参数
变量

但是,如果您确实希望捕获arrow函数的参数,只需使用

constmyfunc=(…参数)=>
console.log(“参数”,args)
myFunc(1,2,3)

//参数[1,2,3]
-请参阅注释。罗马现在给出了相同的参数
:)
Chromium 67在此处抛出错误。Webpack/Babel通过以下错误消息指出此问题:“解析错误:类字段初始值设定项中不允许使用参数”。@totymedli——他们三年前没有,耶,进步!是的,但它的传输版本是对参数的for循环;显著增加了更多的代码
/me耸耸肩
——我想在大多数情况下,我并不真正关心传输的输出。确实添加了更多的代码,但它并不是不起作用。如果您关心传输输出,那么首先可能不应该使用传输器。我的意思是,只要看看生成器或解构赋值的传输输出……关键是ES6为您提供了更简洁、更具表达力和可读性的源代码。构建代码输出不应该太重要,只要它仍然按照您的期望执行。
是的,但是。。。谁在乎呢?
——我在乎,至少就我现在正在做的事情而言。总的来说,我同意,但是(var\u len=arguments.length,args=Array(\u len),\u key=0;\u key<\u len;\u key++){args[\u key]=arguments[\u key];}对于我当前的项目来说,当我编写函数语言帮助程序(
map=(…args)=>flip(args)
)时,不必要的
太重了。20倍的额外代码太多了。这不是一个它扩展到比原来更多的来源的问题,而是一个它扩展到比我自己能写的多得多的来源的问题(你的第二个前男友很好),但这整件事对于这个问题来说是离题的;)当前,Chrome arrow函数在尝试访问参数时引发异常
(() => console.log(arguments))(1,2,3);

// Chrome, FF, Node give "1,2,3"
// Babel gives "arguments is not defined" from parent scope