function createFactory(constructor,...args){
const obj = {}
Object.setPrototypeOf(obj,constructor.prototype)
const result = constructor.call(obj,...args)
return result instanceof Object ? result : obj
}
function Person(name, age) {
this.name = name;
this.age = age;
}
const person1 = createFactory(Person, 'Alice', 25);
console.log(person1);
console.log(person1 instanceof Person);
const person2 = createFactory(Person, 'Bob', 30);
console.log(person2);
console.log(person2 instanceof Person);
function Square(sideLength) {
const area = sideLength ** 2;
return { sideLength, area };
}
const square = createFactory(Square, 5);
console.log(square);
console.log(square instanceof Square);