```
var foo = function(a) { console.assert(this === obj) };
var obj = { foo() { return foo.apply(this, arguments); } };
```
?On Sun, Jan 13, 2019 at 10:01 PM 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 >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

