0

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.

1 Answer 1

1

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();
    }

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.