工厂函数和类
2023-10-29
2分钟阅读时长
在 JavaScript 中,工厂函数和类都是用于创建对象的模板。
工厂函数
工厂函数是一种简单的函数,其目的是通过创建并返回一个新对象来封装和组织代码。它通常具有以下特点:
- 使用函数表达式或函数声明语句定义。
- 函数内部使用对象字面量或 new 关键字创建一个新对象。
- 在函数内部对新对象进行处理并赋值属性、方法等。
- 最后将新对象作为函数的返回值。
示例代码:
function createPerson(name, age) {
var person = {};
person.name = name;
person.age = age;
person.sayHello = function () {
console.log("Hello, my name is " + this.name);
};
return person;
}
var john = createPerson("John", 30);
john.sayHello(); // Hello, my name is John
类
类是一种更复杂的对象创建方式,它基于面向对象编程的概念。在 ES6 之前,JavaScript 并没有真正意义上的类,而是通过构造函数来模拟类的行为。在 ES6 中,引入了 class 关键字,使得 JavaScript 具备了真正的类的特性。
类通常具有以下特点:
- 使用 class 关键字定义,可以包含属性、方法、静态方法等。
- 使用 constructor 方法初始化对象的属性。
- 使用 extends 关键字实现继承。
- 可以使用 super 关键字调用父类的构造函数,从而继承父类的属性和方法。
示例代码:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log("Hello, my name is " + this.name);
}
}
class Student extends Person {
constructor(name, age, grade) {
super(name, age);
this.grade = grade;
}
study() {
console.log(this.name + " is studying in grade " + this.grade);
}
}
var john = new Student("John", 15, 9);
john.sayHello(); // Hello, my name is John
john.study(); // John is studying in grade 9
总之,工厂函数是一种简单的对象创建方式,适用于创建单一对象或一组相似对象。而类是一种更复杂的对象创建方式,适用于需要定义多种类型的对象、进行继承和多态等面向对象编程的场景。