JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】

2023-12-10java编程
2

JavaScript创建对象方式总结

在JavaScript中,我们可以使用多种方式来创建对象,包括工厂模式、构造函数模式、原型模式等。下面将针对每种方式进行详细讲解。

工厂模式

工厂模式是一种基本的对象创建方式,通过工厂函数来创建对象。这种方式可以避免重复代码,提高了代码的可复用性。

实现一个创建人物的工厂,示例代码如下:

function createPerson(name, age, gender) {
  return {
    name: name,
    age: age,
    gender: gender,
    sayName: function () {
      console.log(this.name);
    }
  };
}

var person1 = createPerson("Tom", 18, "male");
var person2 = createPerson("Jerry", 20, "female");

person1.sayName(); // Tom
person2.sayName(); // Jerry

在上述示例代码中,我们首先定义了一个createPerson函数,这个函数接收三个参数,分别为name、age、gender。然后,我们通过return语句返回一个对象,这个对象包含了三个属性,分别为name、age、gender,并且还包含了一个方法sayName。最后,我们分别通过createPerson函数来创建了两个对象person1和person2,并且调用了它们的sayName方法。

构造函数模式

与工厂模式相比,构造函数模式可以更加规范和严谨地创建对象。在这种方式中,我们通过构造函数来创建一个新的对象,并且可以通过this关键字来指向当前对象。

实现一个创建人物的构造函数,示例代码如下:

function Person(name, age, gender) {
  this.name = name;
  this.age = age;
  this.gender = gender;
  this.sayName = function () {
    console.log(this.name);
  };
}

var person1 = new Person("Tom", 18, "male");
var person2 = new Person("Jerry", 20, "female");

person1.sayName(); // Tom
person2.sayName(); // Jerry

在上述示例代码中,我们首先定义了一个Person函数,这个函数使用了this关键字来指向当前创建的对象,并且分别为这个对象添加了name、age、gender和sayName四个属性和方法。然后,我们通过new关键字来创建了两个新的对象person1和person2,并且调用了它们的sayName方法。

原型模式

原型模式是一种创建对象的方式,它通过原型来共享属性和方法,从而提高了代码的复用性和效率。

实现一个创建人物的原型模式,示例代码如下:

function Person(name, age, gender) {
  this.name = name;
  this.age = age;
  this.gender = gender;
}

Person.prototype.sayName = function () {
  console.log(this.name);
};

var person1 = new Person("Tom", 18, "male");
var person2 = new Person("Jerry", 20, "female");

person1.sayName(); // Tom
person2.sayName(); // Jerry

在上述示例代码中,我们首先定义了一个Person函数,并且通过this关键字为这个对象添加了name、age、gender三个属性。然后,我们通过Person.prototype对象为这个对象添加了一个sayName方法。最后,我们通过new关键字来创建了两个新的对象person1和person2,并且调用了它们的sayName方法。

总结

通过工厂模式、构造函数模式和原型模式,我们可以创建出多种对象。其中,工厂模式可以避免重复代码,提高了代码的可复用性;构造函数模式可以更加规范和严谨地创建对象,并且可以通过this关键字来指向当前对象;原型模式通过原型来共享属性和方法,从而提高了代码的复用性和效率。根据实际的需求,我们可以选择合适的方式来创建对象。

The End

相关推荐

一文带你掌握Java8中Lambda表达式 函数式接口及方法构造器数组的引用
Lambda表达式是Java 8中引入的新特性之一,它是一个匿名函数,可以捕获参数并表现为一个代码块,而不像方法一样需要一个固定的名称。它主要用于传递行为或代码块以及事件处理等操作。...
2023-12-11 java编程
30

基于Java 谈回调函数
下面为您详细讲解基于Java的回调函数。...
2023-12-11 java编程
21

java equals函数用法详解
在Java中,equals()是用来比较两个对象是否相等的函数。equals()方法是Object类中的方法,因此所有Java类都包含equals()方法。在默认情况下,equals()方法比较对象的引用地址是否相同,即两个对象是否是同一个实例。但是,我们可以覆盖equals()方法,来定义自...
2023-12-11 java编程
63

JavaWeb学习笔记分享(必看篇)
JavaWeb是Java在Web领域的应用,是目前非常热门的技术之一。但是JavaWeb涉及到的技术非常广泛,初学者很容易迷失方向。本文总结了JavaWeb的基础知识,为初学者提供了一份学习笔记分享,希望能够帮助大家快速入门。...
2023-12-11 java编程
8

Java中replace、replaceAll和replaceFirst函数的用法小结
在Java编程中,字符串操作是很常见的,而替换字符串是其中常用的操作之一。Java提供了三种函数用于替换字符串:replace、replaceAll和replaceFirst。这篇文章将为您详细介绍它们的用法。...
2023-12-11 java编程
121

基于Java中进制的转换函数详解
进制是数学中一种表示数值大小的方法,常见的进制有10进制、2进制、16进制等。...
2023-12-11 java编程
45