Travis build: 210
This commit is contained in:
@ -4467,13 +4467,11 @@ console.log(freddyBound('hi', '!')); // 'hi fred!'
|
|||||||
Creates a function that invokes the method at a given key of an object, optionally adding any additional supplied parameters to the beginning of the arguments.
|
Creates a function that invokes the method at a given key of an object, optionally adding any additional supplied parameters to the beginning of the arguments.
|
||||||
|
|
||||||
Return a `function` that uses `Function.apply()` to bind `context[fn]` to `context`.
|
Return a `function` that uses `Function.apply()` to bind `context[fn]` to `context`.
|
||||||
Use `Array.concat()` to prepend any additional supplied parameters to the arguments.
|
Use the spread operator (`...`) to prepend any additional supplied parameters to the arguments.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
const bindKey = (context, fn, ...args) =>
|
const bindKey = (context, fn, ...boundArgs) => (...args) =>
|
||||||
function() {
|
context[fn].apply(context, [...boundArgs, ...args]);
|
||||||
return context[fn].apply(context, args.concat(...arguments));
|
|
||||||
};
|
|
||||||
```
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|||||||
@ -97,10 +97,8 @@
|
|||||||
<span class="token keyword">const</span> freddy <span class="token operator">=</span> <span class="token punctuation">{</span> user<span class="token punctuation">:</span> <span class="token string">'fred'</span> <span class="token punctuation">};</span>
|
<span class="token keyword">const</span> freddy <span class="token operator">=</span> <span class="token punctuation">{</span> user<span class="token punctuation">:</span> <span class="token string">'fred'</span> <span class="token punctuation">};</span>
|
||||||
<span class="token keyword">const</span> freddyBound <span class="token operator">=</span> <span class="token function">bind</span><span class="token punctuation">(</span>greet<span class="token punctuation">,</span> freddy<span class="token punctuation">);</span>
|
<span class="token keyword">const</span> freddyBound <span class="token operator">=</span> <span class="token function">bind</span><span class="token punctuation">(</span>greet<span class="token punctuation">,</span> freddy<span class="token punctuation">);</span>
|
||||||
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token function">freddyBound</span><span class="token punctuation">(</span><span class="token string">'hi'</span><span class="token punctuation">,</span> <span class="token string">'!'</span><span class="token punctuation">));</span> <span class="token comment">// 'hi fred!'</span>
|
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token function">freddyBound</span><span class="token punctuation">(</span><span class="token string">'hi'</span><span class="token punctuation">,</span> <span class="token string">'!'</span><span class="token punctuation">));</span> <span class="token comment">// 'hi fred!'</span>
|
||||||
</pre><button class="primary clipboard-copy">📋 Copy to clipboard</button></div></div><div class="card fluid"><h3 id="bindkey" class="section double-padded">bindKey</h3><div class="section double-padded"><p>Creates a function that invokes the method at a given key of an object, optionally adding any additional supplied parameters to the beginning of the arguments.</p><p>Return a <code>function</code> that uses <code>Function.apply()</code> to bind <code>context[fn]</code> to <code>context</code>. Use <code>Array.concat()</code> to prepend any additional supplied parameters to the arguments.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">bindKey</span> <span class="token operator">=</span> <span class="token punctuation">(</span>context<span class="token punctuation">,</span> fn<span class="token punctuation">,</span> <span class="token operator">...</span>args<span class="token punctuation">)</span> <span class="token operator">=></span>
|
</pre><button class="primary clipboard-copy">📋 Copy to clipboard</button></div></div><div class="card fluid"><h3 id="bindkey" class="section double-padded">bindKey</h3><div class="section double-padded"><p>Creates a function that invokes the method at a given key of an object, optionally adding any additional supplied parameters to the beginning of the arguments.</p><p>Return a <code>function</code> that uses <code>Function.apply()</code> to bind <code>context[fn]</code> to <code>context</code>. Use the spread operator (<code>...</code>) to prepend any additional supplied parameters to the arguments.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">bindKey</span> <span class="token operator">=</span> <span class="token punctuation">(</span>context<span class="token punctuation">,</span> fn<span class="token punctuation">,</span> <span class="token operator">...</span>boundArgs<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)</span> <span class="token operator">=></span>
|
||||||
<span class="token keyword">function</span><span class="token punctuation">() {</span>
|
context<span class="token punctuation">[</span>fn<span class="token punctuation">].</span><span class="token function">apply</span><span class="token punctuation">(</span>context<span class="token punctuation">, [</span><span class="token operator">...</span>boundArgs<span class="token punctuation">,</span> <span class="token operator">...</span>args<span class="token punctuation">]);</span>
|
||||||
<span class="token keyword">return</span> context<span class="token punctuation">[</span>fn<span class="token punctuation">].</span><span class="token function">apply</span><span class="token punctuation">(</span>context<span class="token punctuation">,</span> args<span class="token punctuation">.</span><span class="token function">concat</span><span class="token punctuation">(</span><span class="token operator">...</span>arguments<span class="token punctuation">));
|
|
||||||
};</span>
|
|
||||||
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token keyword">const</span> freddy <span class="token operator">=</span> <span class="token punctuation">{</span>
|
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token keyword">const</span> freddy <span class="token operator">=</span> <span class="token punctuation">{</span>
|
||||||
user<span class="token punctuation">:</span> <span class="token string">'fred'</span><span class="token punctuation">,</span>
|
user<span class="token punctuation">:</span> <span class="token string">'fred'</span><span class="token punctuation">,</span>
|
||||||
greet<span class="token punctuation">:</span> <span class="token keyword">function</span><span class="token punctuation">(</span>greeting<span class="token punctuation">,</span> punctuation<span class="token punctuation">) {</span>
|
greet<span class="token punctuation">:</span> <span class="token keyword">function</span><span class="token punctuation">(</span>greeting<span class="token punctuation">,</span> punctuation<span class="token punctuation">) {</span>
|
||||||
|
|||||||
@ -6,7 +6,8 @@ Return a `function` that uses `Function.apply()` to bind `context[fn]` to `conte
|
|||||||
Use the spread operator (`...`) to prepend any additional supplied parameters to the arguments.
|
Use the spread operator (`...`) to prepend any additional supplied parameters to the arguments.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
const bindKey = (context, fn, ...boundArgs) => (...args) => context[fn].apply(context, [...boundArgs, ...args]);
|
const bindKey = (context, fn, ...boundArgs) => (...args) =>
|
||||||
|
context[fn].apply(context, [...boundArgs, ...args]);
|
||||||
```
|
```
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
|||||||
Reference in New Issue
Block a user