Creates a function that invokes the method at `object[key]` with `partials` prepended to the arguments it receives. This method differs from `bind` by allowing bound functions to reference methods that may be redefined or don't yet exist. See [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) for more details. The `bindKey.placeholder` value, which defaults to `_` in monolithic builds, may be used as a placeholder for partially applied arguments.
const object = {
'user': 'fred',
'greet': function(greeting, punctuation) {
return greeting + ' ' + this.user + punctuation
}
}
const bound = bindKey(object, 'greet', 'hi')
bound('!')
// => 'hi fred!'
object.greet = function(greeting, punctuation) {
return greeting + 'ya ' + this.user + punctuation
}
bound('!')
// => 'hiya fred!'
// Bound with placeholders.
const bound = bindKey(object, 'greet', _, '!')
bound('hi')
// => 'hiya fred!'
| Name | Type | Attribute | Description |
|---|---|---|---|
| object | The object to invoke the method on. | ||
| key | The key of the method. | ||
| partials | The arguments to be partially applied. |
{
"comment": "/**\r\n * Creates a function that invokes the method at `object[key]` with `partials`\r\n * prepended to the arguments it receives.\r\n *\r\n * This method differs from `bind` by allowing bound functions to reference\r\n * methods that may be redefined or don't yet exist. See\r\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\r\n * for more details.\r\n *\r\n * The `bindKey.placeholder` value, which defaults to `_` in monolithic\r\n * builds, may be used as a placeholder for partially applied arguments.\r\n *\r\n * @since 0.10.0\r\n * @category Function\r\n * @param {Object} object The object to invoke the method on.\r\n * @param {string} key The key of the method.\r\n * @param {...*} [partials] The arguments to be partially applied.\r\n * @returns {Function} Returns the new bound function.\r\n * @example\r\n *\r\n * const object = {\r\n * 'user': 'fred',\r\n * 'greet': function(greeting, punctuation) {\r\n * return greeting + ' ' + this.user + punctuation\r\n * }\r\n * }\r\n *\r\n * const bound = bindKey(object, 'greet', 'hi')\r\n * bound('!')\r\n * // => 'hi fred!'\r\n *\r\n * object.greet = function(greeting, punctuation) {\r\n * return greeting + 'ya ' + this.user + punctuation\r\n * }\r\n *\r\n * bound('!')\r\n * // => 'hiya fred!'\r\n *\r\n * // Bound with placeholders.\r\n * const bound = bindKey(object, 'greet', _, '!')\r\n * bound('hi')\r\n * // => 'hiya fred!'\r\n */",
"meta": {
"range": [
1685,
1987
],
"filename": "bindKey.js",
"lineno": 53,
"path": "C:\\Users\\beaujeup\\projects\\jsdoc-template\\examples\\lodash\\lodash-repo",
"code": {
"id": "astnode100000254",
"name": "bindKey",
"type": "FunctionDeclaration",
"paramnames": [
"object",
"key",
"partials"
]
},
"vars": {
"holders": "bindKey~holders",
"bitmask": "bindKey~bitmask"
}
},
"description": "Creates a function that invokes the method at `object[key]` with `partials`\rprepended to the arguments it receives.\r\rThis method differs from `bind` by allowing bound functions to reference\rmethods that may be redefined or don't yet exist. See\r[Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\rfor more details.\r\rThe `bindKey.placeholder` value, which defaults to `_` in monolithic\rbuilds, may be used as a placeholder for partially applied arguments.",
"since": "0.10.0",
"tags": [
{
"originalTitle": "category",
"title": "category",
"text": "Function",
"value": "Function"
}
],
"params": [
{
"type": {
"names": [
"Object"
]
},
"description": "The object to invoke the method on.",
"name": "object"
},
{
"type": {
"names": [
"string"
]
},
"description": "The key of the method.",
"name": "key"
},
{
"type": {
"names": [
"*"
]
},
"optional": true,
"variable": true,
"description": "The arguments to be partially applied.",
"name": "partials"
}
],
"returns": [
{
"type": {
"names": [
"function"
]
},
"description": "Returns the new bound function."
}
],
"examples": [
"const object = {\r 'user': 'fred',\r 'greet': function(greeting, punctuation) {\r return greeting + ' ' + this.user + punctuation\r }\r}\r\rconst bound = bindKey(object, 'greet', 'hi')\rbound('!')\r// => 'hi fred!'\r\robject.greet = function(greeting, punctuation) {\r return greeting + 'ya ' + this.user + punctuation\r}\r\rbound('!')\r// => 'hiya fred!'\r\r// Bound with placeholders.\rconst bound = bindKey(object, 'greet', _, '!')\rbound('hi')\r// => 'hiya fred!'"
],
"name": "bindKey",
"longname": "bindKey",
"kind": "function",
"scope": "global",
"___id": "T000002R000024",
"___s": true,
"filepath": "bindKey.js"
}