time-to-botec/js/node_modules/@stdlib/utils/reorder-arguments
NunoSempere b6addc7f05 feat: add the node modules
Necessary in order to clearly see the squiggle hotwiring.
2022-12-03 12:44:49 +00:00
..
docs feat: add the node modules 2022-12-03 12:44:49 +00:00
lib feat: add the node modules 2022-12-03 12:44:49 +00:00
package.json feat: add the node modules 2022-12-03 12:44:49 +00:00
README.md feat: add the node modules 2022-12-03 12:44:49 +00:00

reorderArguments

Create a function that invokes a provided function with reordered arguments.

Usage

var reorderArguments = require( '@stdlib/utils/reorder-arguments' );

reorderArguments( fcn, indices[, thisArg] )

Returns a function that invokes a provided function with reordered arguments.

function foo( a, b ) {
    return [ a, b ];
}

var bar = reorderArguments( foo, [ 1, 0 ] );

var out = bar( 1, 2 );
// returns [ 2, 1 ]

To set the this context when invoking the provided function, provide a thisArg.

function Foo() {
    this.x = 1;
    this.y = 2;
}

Foo.prototype.scale = function scale( a, b ) {
    return [ this.x*a, this.y*b ];
};

var ctx = {
    'x': 10,
    'y': 20
};

var foo = new Foo();

var bar = reorderArguments( foo.scale, [ 1, 0 ], ctx );

var out = bar( 1, 2 );
// returns [ 20, 20 ]

Examples

var reorderArguments = require( '@stdlib/utils/reorder-arguments' );

function foo( a, b, c ) {
    return [ a, b, c ];
}

var bar = reorderArguments( foo, [ 2, 0, 1 ] );

var out = foo( 1, 2, 3 );
// returns [ 1, 2, 3 ]

out = bar( 1, 2, 3 );
// returns [ 3, 1, 2 ]