<div dir="ltr">oops.... forgot to return retval!</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Jan 14, 2019 at 12:01 AM Ranando King <<a href="mailto:kingmph@gmail.com">kingmph@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Bind is just a wrapper function provided by the engine. You can always create your own:<div><br></div><div><font face="monospace, monospace">```js</font></div><div><font face="monospace, monospace">function myBind(fn, ...args) {</font></div><div><font face="monospace, monospace">  let retval = Object.defineProperties(function(...a) {</font></div><div><font face="monospace, monospace">    console.assert(typeof(fn) == "function");</font></div><div><font face="monospace, monospace">    return fn(...args, ...a)</font></div><div><font face="monospace, monospace">  }, {</font></div><div><font face="monospace, monospace">    name: {</font></div><div><font face="monospace, monospace">      configurable: true,</font></div><div><font face="monospace, monospace">      value: <a href="http://fn.name" target="_blank">fn.name</a></font></div><div><font face="monospace, monospace">    },</font></div><div><font face="monospace, monospace">    length: {</font></div><div><font face="monospace, monospace">      configurable: true,</font></div><div><font face="monospace, monospace">      value: fn.length</font></div><div><font face="monospace, monospace">    },</font></div><div><font face="monospace, monospace">    prototype: {</font></div><div><font face="monospace, monospace">      configurable: true,</font></div><div><font face="monospace, monospace">      writable: true,</font></div><div><font face="monospace, monospace">      value: fn.prototype</font></div><div><font face="monospace, monospace">    }</font></div><div><font face="monospace, monospace">  });</font></div><div><font face="monospace, monospace">}</font></div><div><font face="monospace, monospace">```</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">This should apply your bound arguments before any arguments supplied by the caller without affecting the context object.</font></div></div><br><div class="gmail_quote"><div dir="ltr">On Sun, Jan 13, 2019 at 11:39 PM Sultan <<a href="mailto:thysultan@gmail.com" target="_blank">thysultan@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div>Consider the following example:<br><br>var foo = (function(a) { console.assert(this === obj) }).bind(undefined, 1)</div><div>var obj = {foo: foo}</div><div><br>Calling foo from obj:<br><br>obj.foo(1)<br><br>Would result in an assertion. How does one go about preserving the this reference of the caller. That is i want to use .bind to only bind "arguments" and not "thisArg".<br><br><br></div></div></div>
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div>
</blockquote></div>