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

使用参数变量[重复]获取传递给ES6箭头函数的参数

宋鸿云
2023-03-14

我了解在ES6中arrow函数是如何工作的,词法也是如此,但我想知道是否有人知道将参数传递给arrow函数的方法?

在ES5中,您可以简单地执行以下操作:

function foo( bar, baz ){
    console.log('Args:', arguments.join(', '))
}

但是,在ES6中,如果使用箭头函数,如下所示:

const foo = ( bar, baz ) => {
    console.log('Args:', arguments.join(', '))
}

arguments变量返回一个对象,该对象与参数非常接近。

所以,我想知道是否有人有办法将参数传递给arrow函数?

我想也许我应该给一些关于我试图完成的事情的信息,也许如果上面的不可能,有人有更好的主意。

基本上,我将向BluebirdJS asCallback方法添加一个IIEF,它将确定是否确实提供了回调,如果没有,它将返回promise。

以下是ES5中的一个工作示例:

var _ = require('lodash')
var Promise = require('bluebird')

function testFunc( foo, callback ) {
    return new Promise( function ( res, rej ){
        res('You Said: ' + (_.isString( foo ) ? foo : 'NOTHING') )
    })
        .asCallback((function ( args ) {
            return _.findLast(args, function(a) {
                return _.isFunction( a )
            })
        })( arguments ))
}


testFunc('test', function( err, data ) {
    if( ! _.isEmpty( err ) )
        console.log('ERR:', err)
    else
        console.log('DATA: ', data)
})
// DATA:  You Said: test

testFunc(function( err, data ) {
    if( ! _.isEmpty( err ) )
        console.log('ERR:', err)
    else
        console.log('DATA: ', data)
})
// DATA:  You Said: NOTHING

因此,如果我使用所有ES5函数,它就可以正常工作,并且我不介意在IIEF中使用它们,或者如果需要的话在它内部使用它们。但是这取决于函数中的参数变量,我真的不想用它作为ES5函数,而是坚持ES6箭头函数。所以,如果有一些ES6方法来获得ES6箭头函数中的参数,那将是完美的!

共有1个答案

阎裕
2023-03-14

箭头函数没有自己的this和参数。话虽如此,您仍然可以使用Rest参数(也称为spread运算符:
Ref:https://strongloop.com/strongblog/an-introduction-to-javascript-es6-arrow-functions/

function message(msg) {
  const foo = (...args) => console.log(args[0]);
  foo(`Message: ${msg}`);
}

message('Hello World'); // Message: Hello World
 类似资料:
  • 我有一个react组件,我想用不同的参数调用相同的箭头函数,但我被困在如何传递参数给它,现在我在问自己,我能做到吗?

  • 我是的新用户,我想回忆不同变量的代码块,我想做如下事情: 这里的都是中的变量。如果我调用,这部分就可以工作了。但是,我调用的方式仍然没有告诉这个函数group by是由完成的。我怎么让它工作?

  • 陈述 我想去 但是显然没有使用...因为它不是切肉刀,我想了解更多关于函数及其传递参数的方式。 所以我尝试附加一个使用map函数列表的所有元素。但在此之前,是一个方法,而不是一个方法。 最后一个映射函数返回TypeError: 我想知道是否可以将参数传递给使用的方法。感谢

  • 所以我有两个函数都有相似的参数 现在,调用,但我如何在不修改的情况下传递变量参数列表中的变量(因为这在其他地方也已经使用了)。

  • 新的“胖箭头”符号还可以用更简单的方式来定义匿名函数。 请看下面的例子: console.log(x); incrementedItems.push(x+1); }); 计算一个表达式并返回值的函数可以被定义更简单: 下面代码与上面几乎等价: incrementedItems = items.map(function (x) { return x+1; 让我们在 验

  • 问题内容: 我有这些父级和子级组件,我想通过点击功能在子级组件中选择一个项目。但是,似乎子组件中的函数会自动调用,而不是等到用户单击元素后才开始调用。为了更清楚一点,这里是我的父级和子级组件 这些是我使用箭头函数传递给子组件的组件,但是警报始终在第一次渲染时被调用,而不会被用户触发。有什么建议吗? 问题答案: 您应该将函数本身传递给,而不是传递的函数调用的结果。 如果要使用param调用它,则可以