Javascript 构造函数详解
Javascript中的构造函数是一种用于创建对象的特殊函数,它可以通过使用关键字 new
来调用,并返回新创建的实例对象。
构造函数定义
构造函数的定义形式与普通函数相同,不同的是构造函数的名称通常首字母大写,以便于区分。
function Person(name, age) {
this.name = name;
this.age = age;
}
在构造函数中使用 this
关键字可以将属性绑定到新创建的对象上。
对象实例化
通过使用 new
关键字调用构造函数可以创建新的对象实例。
var person1 = new Person("Tom", 18);
var person2 = new Person("Jerry", 20);
上面代码中,分别创建了 person1
和 person2
两个实例对象,它们都拥有 name
和 age
两个属性。
原型
在Javascript中,每个对象都有一个指向原型(prototype)的链接。原型是一个对象,包含对象的属性和方法。每个通过构造函数创建的对象实例都共享同一个原型对象。
可以通过给构造函数的 prototype
属性添加属性和方法,从而为所有实例共享它们。
Person.prototype.sayHello = function() {
console.log("Hello, my name is " + this.name + ", and I am " + this.age + " years old.");
}
person1.sayHello(); // 输出:Hello, my name is Tom, and I am 18 years old.
person2.sayHello(); // 输出:Hello, my name is Jerry, and I am 20 years old.
上述代码中,为 Person
构造函数的原型对象添加了 sayHello
方法,该方法可以输出当前对象的信息。新创建的 person1
和 person2
实例对象都拥有该方法,并可以输出它们的信息。
示例说明
下面是一个使用构造函数创建“学生”对象的实例。
function Student(name, age, score) {
this.name = name;
this.age = age;
this.score = score;
}
Student.prototype.sayScore = function() {
console.log("My score is " + this.score + ".");
}
var student1 = new Student("小明", 18, 90);
var student2 = new Student("小红", 20, 95);
console.log(student1.name); // 输出:小明
student2.sayScore(); // 输出:My score is 95.
上述代码中,创建了 Student
构造函数,每个学生对象都拥有 name
、age
和 score
三个属性,并且共享 sayScore
方法。新创建的 student1
和 student2
实例对象分别设置了不同的属性值,并可以输出它们的信息。同时也可以通过 sayScore
方法输出它们的成绩。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript 构造函数详解 - Python技术站