mirror of
https://github.com/swc-project/swc.git
synced 2024-12-26 23:27:56 +03:00
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
|
// Loaded from https://deno.land/x/ramda@v0.27.2/source/bind.js
|
||
|
|
||
|
|
||
|
import _arity from './internal/_arity.js';
|
||
|
import _curry2 from './internal/_curry2.js';
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Creates a function that is bound to a context.
|
||
|
* Note: `R.bind` does not provide the additional argument-binding capabilities of
|
||
|
* [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).
|
||
|
*
|
||
|
* @func
|
||
|
* @memberOf R
|
||
|
* @since v0.6.0
|
||
|
* @category Function
|
||
|
* @category Object
|
||
|
* @sig (* -> *) -> {*} -> (* -> *)
|
||
|
* @param {Function} fn The function to bind to context
|
||
|
* @param {Object} thisObj The context to bind `fn` to
|
||
|
* @return {Function} A function that will execute in the context of `thisObj`.
|
||
|
* @see R.partial
|
||
|
* @example
|
||
|
*
|
||
|
* const log = R.bind(console.log, console);
|
||
|
* R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}
|
||
|
* // logs {a: 2}
|
||
|
* @symb R.bind(f, o)(a, b) = f.call(o, a, b)
|
||
|
*/
|
||
|
var bind = _curry2(function bind(fn, thisObj) {
|
||
|
return _arity(fn.length, function() {
|
||
|
return fn.apply(thisObj, arguments);
|
||
|
});
|
||
|
});
|
||
|
export default bind;
|