TechnoCorner
TechnoCorner

Reputation: 5135

Implementing Custom bind issues

I'm trying to implement native bind functionality. However, when I try to test it out, I'm not getting the expected output.

Can someone tell me where am I going wrong?

Function.prototype.myBind =  function(...args) {
    const self = this;
    return function() {
        return self.apply(this, args);
    }
};

function demo() {
  return {
    name: 'James Bond',
    printName: function (args) {
      console.log(this.name, args);
    }
  };
}


const test = {
  name: 'Aqua Man'
};

console.log(demo().printName.myBind(test)('2020'));
// expected
console.log(demo().printName.bind(test)('2020'));

Upvotes: 2

Views: 43

Answers (1)

Ebrahim Pasbani
Ebrahim Pasbani

Reputation: 9406

You need to bind to argument like this:

Function.prototype.myBind =  function(binder) {
    const self = this;
    return function() {
        return self.apply(binder, arguments);
    }
};

Upvotes: 3

Related Questions