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