当前位置: 首页 > 知识库问答 >
问题:

Javascript中箭头函数与函数的行为差异[重复]

何涵忍
2023-03-14

箭头函数:

function arrowFunc() {
  return () => arguments
}


console.log(arrowFunc(1, 2, 3)(1))

正规函数

function normalFunc() {
  return function() {
    return arguments
  }
}

console.log(normalFunc(1, 2, 3)(1))

这两个结果应该是相同的,但是看起来像上面定义的arrowFunc考虑第一个arg列表,而normalFunc考虑第二组arg列表。

"use strict";

function arrowFunc() {
  var _arguments = arguments;

  return function() {
    return _arguments;
  };
}

console.log(arrowFunc(1, 2, 3)(1));

function normalFunc() {
  return function() {
    return arguments;
  };
}

console.log(normalFunc(1, 2, 3)(1));

共有1个答案

艾泽语
2023-03-14

预期两个结果都是一样的

不,他们不是。

从MDN页面关于箭头函数的第一行开始(强调是我的):

 类似资料:
  • 本文向大家介绍JavaScript中的常规函数​​与箭头函数?,包括了JavaScript中的常规函数​​与箭头函数?的使用技巧和注意事项,需要的朋友参考一下 常规函数与箭头函数 一个箭头函数来简洁编写代码。常规 函数和箭头 函数的工作方式相似,但是它们之间存在一些差异。让我们简要地讨论一下这些差异。 箭头函数的语法 正则函数的语法 “ this”关键字的用法 它不能在箭头功能中使用“ this”

  • 不鼓励将箭头函数(“lambdas”)传递给 Mocha。Lambdas词法绑定 this,无法访问 Mocha 上下文。例如,以下代码将失败: describe('my suite', () => { it('my test', () => { // should set the timeout of this test to 1000 ms; instead will fail thi

  • ES6标准新增了一种新的函数:Arrow Function(箭头函数)。 为什么叫Arrow Function?因为它的定义用的就是一个箭头: x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 在继续学习箭头函数之前,请测试你的浏览器是否支持ES6的Arrow Function: 'use strict'; ---- var f

  • 本文向大家介绍JavaScript中的函数申明、函数表达式、箭头函数,包括了JavaScript中的函数申明、函数表达式、箭头函数的使用技巧和注意事项,需要的朋友参考一下 JavaScript中的函数可以通过几种方式创建,如下。 函数声明和表达式之间的差别是 JavaScript 解释器中存在一种变量声明被提升的机制,也就是说函数声明会被提升到作用域的最前面,即使写代码的时候是写在最后面,也还是会

  • 问题内容: 我是React的新手,正在尝试了解语法。 我正在React 15环境中进行开发(使用react-starterify模板),并且一直在使用下面的VERSION 2中的语法,但是,我在Facebook的React页面上发现的大多数示例和教程都是VERSION 1。这两个,何时应在另一个之上使用? 版本1 版本2 问题答案: 第二个代码是 无状态功能组件, 并且是用于将组件定义为的函数的新

  • 我在Vannila JS中制作了一个随机密码生成器,我在下面的代码中遇到了一个未知的问题: 在这段代码中,如果将语句括在大括号{}中,则Object.values(item)[0]不起作用: 我不明白为什么会发生这种情况,我试着搜索文档,但没有用,谢谢!