📅  最后修改于: 2023-12-03 15:16:13.737000             🧑  作者: Mango
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
构造函数对象,它接受两个参数 name
和 age
。通过使用 this
关键字,我们可以将这些参数存储到新创建的对象中,并将其赋值给 name
和 age
属性。我们还定义了一个 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
对象,并通过调用 introduce
和 study
方法来打印出其信息。
Javascript 构造函数对象是一种用于创建新对象的函数,可以用于创建具有相似属性和方法的多个对象,同时也允许在实例化时传递参数进行定制。您还可以继承构造函数对象并添加新的属性和方法。