📜  如何在 JavaScript 中创建带有原型的对象?(1)

📅  最后修改于: 2023-12-03 14:52:20.669000             🧑  作者: Mango

如何在 JavaScript 中创建带有原型的对象?

在 JavaScript 中,每一个对象都有原型以及属性。所有的 JavaScript 对象都继承自一个原型对象,并可以在继承的原型对象上添加属性和方法。

通过原型可以实现对象之间的共享属性和方法。创建一个包含原型的对象可以通过下面的几种方式实现:

方式一:使用构造函数
function Person(name) {
  this.name = name;
}

Person.prototype.sayHello = function() {
  console.log("Hello, my name is " + this.name);
};

var person1 = new Person("Alice");
var person2 = new Person("Bob");

person1.sayHello(); // Output: Hello, my name is Alice
person2.sayHello(); // Output: Hello, my name is Bob

以上代码中,我们先定义了一个构造函数 Person,其中有一个属性 name,并在其原型上添加了一个方法 sayHello。最后通过 new 关键字创建了两个 Person 的实例。这两个实例继承了 Person.prototype 上的 sayHello 方法,由此可以共享方法和属性。

方式二:使用对象字面量
var Person = {
  name: "",
  sayHello: function() {
    console.log("Hello, my name is " + this.name);
  }
};

var person1 = Object.create(Person);
person1.name = "Alice";
var person2 = Object.create(Person);
person2.name = "Bob";

person1.sayHello(); // Output: Hello, my name is Alice
person2.sayHello(); // Output: Hello, my name is Bob

以上代码中,我们定义了一个对象字面量 Person,其中有一个属性 name,还有一个 sayHello 方法。然后通过 Object.create 方法创建了两个对象 person1person2。这两个对象都继承了 Person 对象的属性和方法,由此实现了对象之间的共享。

方式三:使用 class
class Person {
  constructor(name) {
    this.name = name;
  }
  sayHello() {
    console.log("Hello, my name is " + this.name);
  }
}

let person1 = new Person("Alice");
let person2 = new Person("Bob");

person1.sayHello(); // Output: Hello, my name is Alice
person2.sayHello(); // Output: Hello, my name is Bob

以上代码中,我们定义了一个 Person 类,其中有一个属性 name 和一个方法 sayHello。然后通过 new 关键字创建了两个 Person 的实例。这两个实例继承了 Person 类的属性和方法,实现了对象之间的共享。

以上就是在 JavaScript 中创建带有原型的对象的三种方式。不同的方式可根据不同的需求选择,以实现最佳的代码效果。