我了解箭头在ES6和词汇中的工作方式,但我想知道是否有人知道将论证传递给箭头函数的方法?
在ES5,您可以简单地做:
function foo( bar, baz ){
console.log('Args:', arguments.join(', '))
}
在ES6中,如果您使用箭头功能,则是这样:
const foo = ( bar, baz ) => {
console.log('Args:', arguments.join(', '))
}
变量返回一个对象,该对象与参数无关。
,我想知道是否有人有办法将论点传递给箭头函数?
eDit
方法添加一个iief,该方法将确定是否实际上提供了回调,如果没有,它将返回承诺。
在ES5中提供一个工作示例:如果我使用所有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
在这里解释::
arguments
和this
Rest参数...(也称为
SpreadOperator)将所有参数传递到箭头函数中: 还解释了“ REST参数”。 the the rest参数语法允许函数接受无限数量的参数作为array
arguments