function createClass(obj) {
class NewClass { }
for (const prop in obj) {
if (obj.hasOwnProperty(prop)) {
NewClass.prototype[prop] = obj[prop];
}
}
return NewClass;
}
const Person = createClass({
name: 'John',
age: 30,
greet: function() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
});
const john = new Person();
john.greet(); // 输出 "Hello, my name is John and I am 30 years old."
这段代码定义了一个函数 createClass
,它接收一个对象 obj
。该函数动态地创建一个新类 NewClass
并将从 obj
对象中派生的属性和方法添加到新类的原型中。最后,我们返回这个新类。
使用 createClass
函数和对象字面量,我们创建了一个新的 Person
类。然后,我们创建一个新的 john
对象并调用 greet
方法。该方法从 Person.prototype
收集的属性和方法中输出一条问候语。