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