使用参数varible [重复]

问题描述 投票:0回答:1

我了解箭头在ES6和词汇中的工作方式,但我想知道是否有人知道将论证传递给箭头函数的方法?

在ES5,您可以简单地做:

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

在ES6中,如果您使用箭头功能,则是这样:

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

变量返回一个对象,该对象与参数无关。

,我想知道是否有人有办法将论点传递给箭头函数?

eDit


我猜想,也许我应该提供一些有关我要完成的工作的信息,也许如果不可能,有人有一个更好的主意。

基本上,我正在向bluebirdjs

aScallback

方法添加一个iief,该方法将确定是否实际上提供了回调,如果没有,它将返回承诺。

在ES5中提供一个工作示例:

arguments

如果我使用所有ES5功能,那就好起来了,并且我不介意将它们用于IIEF,或者在需要的情况下使用它们。但是,这取决于我不想用作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

变量,而ID却坚持使用ES6箭头函数。因此,如果有一些ES6在ES6箭头函数中获得参数的方法,那将是完美的!
    

在这里解释:

javascript callback arguments ecmascript-6 lexical-closures
1个回答
34
投票
箭头功能没有自己的

argumentsthis

。话虽如此,您仍然可以使用
Rest参数

(也称为

SpreadOperator
)将所有参数传递到箭头函数中:

还解释了“ REST参数”。

the the rest参数语法允许函数接受无限数量的参数

作为array
...

...

arguments

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.