学科分类
目录
JavaScript网页编程

利用构造函数创建对象

前面学习的字面量的方式只适合创建一个对象,而当需要创建多个对象时,还要将对象的每个成员都写一遍,显得比较麻烦,因此,可以用构造函数来创建对象。使用构造函数创建对象的语法为“new 构造函数名()”,在小括号中可以传递参数给构造函数,如果没有参数,小括号可以省略。实际上,“new Object()”就是一种使用构造函数创建对象的方式,Object就是构造函数的名称,但这种方式创建出来的是一个空对象。如果我们想要创建的是一些具有相同特征的对象,则可以自己写一个构造函数。其基本语法如下。

// 编写构造函数

function 构造函数名() {

 this.属性 = 属性;

 this.方法 = function() {

  // 方法体

};

}

// 使用构造函数创建对象

var obj = new 构造函数名();

在上述代码中,构造函数中的this表示新创建出来的对象,在构造函数中可以通过this来为新创建出来的对象添加成员。需要注意的是,构造函数的名称推荐首字母大写。

下面我们通过代码演示如何编写一个Student构造函数,并创建对象,具体代码如下。

// 编写一个Student构造函数

function Student(name, age) {

 this.name = name;

 this.age = age;

 this.sayHello = function() {

  console.log('你好,我叫' + this.name);

};

}

// 使用Student构造函数创建对象

var stu1 = new Student('小明', 18);

console.log(stu1.name);       // 输出结果:小明

console.log(stu1.sayHello());    // 输出结果:你好,我叫小明

var stu2 = new Student('小红', 17);

console.log(stu2.name);       // 输出结果:小红

console.log(stu2.sayHello());    // 输出结果:你好,我叫小红

通过上述代码可以看出,利用构造函数可以很方便地创建同一类对象(如学生),在创建时,只需将不同对象的属性值通过参数传进去即可。

JavaScript中的构造函数类似于传统面向对象语言(如Java)中的类(class),所以在JavaScript中也可以使用面向对象编程中的一些术语,具体如下。

  • 抽象:将一类对象的共同特征提取出来,编写成一个构造函数(类)的过程,称为抽象。

  • 实例化:利用构造函数(类)创建对象的过程,称为实例化。

  • 实例:如果stu1对象是由Student构造函数创建出来的,则stu1对象称为Student构造函数的实例(或称为实例对象)。

点击此处
隐藏目录