📜  javascript 构造函数对象 - Javascript (1)

📅  最后修改于: 2023-12-03 15:16:13.737000             🧑  作者: Mango

Javascript 构造函数对象

Javascript 构造函数对象是一种用于创建新对象的函数,在定义时使用 function 关键字,并以大写字母开头。构造函数对象可以用于创建具有相似属性和方法的多个对象,同时也允许在实例化时传递参数进行定制。

定义构造函数对象

定义构造函数对象的语法如下:

function Person(name, age) {
  this.name = name;
  this.age = age;
  
  this.introduce = function() {
    console.log("My name is " + this.name + " and I'm " + this.age + " years old.");
  }
}

在上面的例子中,我们定义了一个 Person 构造函数对象,它接受两个参数 nameage。通过使用 this 关键字,我们可以将这些参数存储到新创建的对象中,并将其赋值给 nameage 属性。我们还定义了一个 introduce 方法,用于打印对象的一些信息。

创建新对象

现在我们可以通过 new 关键字来实例化我们的 Person 对象,并传递参数来进行初始化。

let john = new Person("John", 28);

在上面的例子中,我们创建了一个 John 对象,并将其初始化为一个 Person 对象。我们可以通过调用 introduce 方法来打印出对象的信息。

john.introduce(); // 输出 "My name is John and I'm 28 years old."

我们还可以创建多个对象,并通过传递不同的参数来进行初始化。

let sarah = new Person("Sarah", 25);
sarah.introduce(); // 输出 "My name is Sarah and I'm 25 years old."
继承构造函数对象

我们可以通过将一个构造函数对象设置为另一个构造函数对象的原型来实现继承。例如,我们可以创建一个 Student 构造函数对象,并让它继承自 Person

function Student(name, age, grade) {
  Person.call(this, name, age); // 调用父类的构造函数,初始化name和age属性
  this.grade = grade;
}
Student.prototype = Object.create(Person.prototype); // 设置原型链以继承Person的属性和方法

Student.prototype.study = function() {
  console.log(this.name + " is studying in grade " + this.grade + ".");
}

let tom = new Student("Tom", 15, 9);
tom.introduce(); // 输出 "My name is Tom and I'm 15 years old."
tom.study(); // 输出 "Tom is studying in grade 9."

在上面的例子中,我们创建了一个 Student 构造函数对象,并让它继承自 Person。我们使用 Object.create 方法来创建新的原型对象,并让它继承自 Person.prototype。我们还定义了一个 study 方法,并将其添加到 Student.prototype 中,以便所有 Student 对象都可以共享该方法。最后,我们创建了一个 Tom 对象,并通过调用 introducestudy 方法来打印出其信息。

总结

Javascript 构造函数对象是一种用于创建新对象的函数,可以用于创建具有相似属性和方法的多个对象,同时也允许在实例化时传递参数进行定制。您还可以继承构造函数对象并添加新的属性和方法。