# reverseArguments > Create a function that invokes a provided function with arguments in reverse order.
## Usage ```javascript var reverseArguments = require( '@stdlib/utils/reverse-arguments' ); ``` #### reverseArguments( fcn\[, thisArg] ) Returns a `function` that invokes a provided function with `arguments` in reverse order. ```javascript function foo( a, b ) { return [ a, b ]; } var bar = reverseArguments( foo ); var out = bar( 1, 2 ); // returns [ 2, 1 ] ``` To set the `this` context when invoking the provided function, provide a `thisArg`. ```javascript 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 = reverseArguments( foo.scale, ctx ); var out = bar( 1, 2 ); // returns [ 20, 20 ] ```
## Examples ```javascript var reverseArguments = require( '@stdlib/utils/reverse-arguments' ); function foo( a, b, c ) { return [ a, b, c ]; } var bar = reverseArguments( foo ); var out = foo( 1, 2, 3 ); // returns [ 1, 2, 3 ] out = bar( 1, 2, 3 ); // returns [ 3, 2, 1 ] ```