oops.... forgot to return retval!
On Mon, Jan 14, 2019 at 12:01 AM Ranando King <[email protected]> wrote:
> Bind is just a wrapper function provided by the engine. You can always
> create your own:
>
> ```js
> function myBind(fn, ...args) {
> let retval = Object.defineProperties(function(...a) {
> console.assert(typeof(fn) == "function");
> return fn(...args, ...a)
> }, {
> name: {
> configurable: true,
> value: fn.name
> },
> length: {
> configurable: true,
> value: fn.length
> },
> prototype: {
> configurable: true,
> writable: true,
> value: fn.prototype
> }
> });
> }
> ```
>
> This should apply your bound arguments before any arguments supplied by
> the caller without affecting the context object.
>
> On Sun, Jan 13, 2019 at 11:39 PM Sultan <[email protected]> wrote:
>
>> Consider the following example:
>>
>> var foo = (function(a) { console.assert(this === obj) }).bind(undefined,
>> 1)
>> var obj = {foo: foo}
>>
>> Calling foo from obj:
>>
>> obj.foo(1)
>>
>> 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".
>>
>>
>> _______________________________________________
>> es-discuss mailing list
>> [email protected]
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss