Home > Blockchain >  How to add methods dynamically to a javascript object
How to add methods dynamically to a javascript object

Time:05-07

I have a scenario that need to add new methods to an object dynamically.

Basically, this new method will be passed as parameter to a function. Then inside the function i will add this method to the object.

sampleFunction(() => console.log("This is new function"))

function sampleFunction(newMethod) {
  var Person = {
    first_name: "Marty",
    last_name: "Mcfly",
    born: 1968,
  };

  let p = new Person();

  // code to add new methods to Person Object here ....
}

Above is the example for the scenario i faced.

Really Appreciated if anyone can help me.

Thanks.

CodePudding user response:

You can't use new without a constructor. For your object literal you do not even need a class/constructor. Just attach a new property.

sampleFunction(() => console.log("This is new function"))

function sampleFunction(newMethod) {
  var Person = {
    first_name: "Marty",
    last_name: "Mcfly",
    born: 1968,
  };
Person.newMethod = newMethod;

  console.log(Person);
  Person.newMethod();
}

Note, you might want to name your method better. Suggest you to pass one more param with the name:

    sampleFunction(() => console.log("This is new function"),'mynewmethod')

    function sampleFunction(newMethod,name) {
      var Person = {
        first_name: "Marty",
        last_name: "Mcfly",
        born: 1968,
      };
    Person[name] = newMethod;

      console.log(Person);
      Person.mynewmethod();
    }

  • Related