Function.prototype.myBind = function(context, ...presetArgs) { const fn = this; return function(...laterArgs) { return fn.call(context, ...presetArgs, ...laterArgs); }; }.
How do you implement a polyfill for bind in JavaScript?
More FAQs in How to Write a Polyfill for bind in JavaScript
Use rest parameters: myBind = function(context, ...presetArgs). Spread them in the call: fn.call(context, ...presetArgs, ...laterArgs). This merges preset and later arguments.
Check this instanceof boundFn. If true (called with new), use new fn(...args) instead of fn.call(context, ...args). Set boundFn.prototype = Object.create(fn.prototype).
So that instances created with new boundFn() have the correct prototype chain. Without it, instanceof checks would fail. Set boundFn.prototype = Object.create(fn.prototype).
Still have questions?
Browse all our FAQs or reach out to our support team
Want to upskill yourself?
Your learning library
Small steps. Big possibilities.
Find your next course. Build something great.