gpt4 book ai didi

javascript - 使用参数变量获取传递给 ES6 箭头函数的参数

转载 作者:数据小太阳 更新时间:2023-10-29 04:59:59 25 4
gpt4 key购买 nike

<分区>

我了解箭头函数在 ES6 中的工作方式,以及词法上的 this,但我想知道是否有人知道将参数传递给箭头函数的方法?

在 ES5 中,你可以简单地做:

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

然而,在 ES6 中,如果你使用箭头函数,像这样:

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

arguments 变量返回一个对象,它与参数没有任何关系。

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


编辑

我想也许我应该提供一些关于我正在努力完成的事情的信息,也许如果以上不可能,有人有更好的主意。

基本上,我将 IIEF 添加到 BluebirdJS asCallback方法,它将确定是否实际提供了回调,如果没有,则返回 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,或者在需要时在其中使用。但这取决于函数内的 arguments 变量,我真的不想将其用作 ES5 函数,而是坚持使用 ES6 箭头函数。因此,如果有一些 ES6 方法可以在 ES6 箭头函数中获取参数,那将是完美的!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com