1. 构造函数创建对象介绍
在JavaScript中,使用构造函数可以创建对象。构造函数实际上是一个普通函数,可以把它类比为一个模板,用来创建同一种类型的对象。
下面是一个使用构造函数创建“人”的对象示例:
function Person(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
var person1 = new Person('Tom', 18, '男');
在上面的代码中,我们定义了一个名为Person的构造函数,其中有三个参数:name、age、gender。在构造函数中,我们使用了this关键字来指向实例化后的对象,并通过赋值来给实例化对象添加属性。最后,通过使用new操作符来创建对象。
创建对象的方式不同于字面量形式,字面量方式创建的对象属性和方法不能被多个实例化对象所共享,而构造函数则不同,它可以创建多个实例化对象并共享属性和方法。
2. 构造函数的特点
2.1 构造函数的名称首字母大写
构造函数的名称首字母通常大写,以便于将其与普通函数区分开来。此外,这是一种代码逻辑上的约定,使其他开发人员一眼就能看出某个函数是否为构造函数。
2.2 this对象
在构造函数中,this关键字是非常重要的,因为它是指向创建的实例化对象(具体解释见第一节)。我们可以通过this关键字来给实例化对象添加属性和方法。
2.3 使用new来创建实例化对象
只有使用new操作符才能创建一个实例化对象,这和普通函数调用是不一样的。
3. 构造函数的示例
3.1 创建一个简单的矩形对象
下面是一个使用构造函数创建矩阵对象的示例:
function Rectangle(length, width) {
this.length = length;
this.width = width;
this.area = function() {
return this.length * this.width;
};
this.perimeter = function() {
return 2 * (this.length + this.width);
};
}
var rect1 = new Rectangle(5, 3);
console.log(rect1.area()); // 15
console.log(rect1.perimeter()); // 16
在上面的代码中,我们定义了一个名为Rectangle的构造函数,用于创建矩形对象。在构造函数中,我们使用this关键字来指向实例化后的对象,并通过赋值来给实例化对象添加属性和方法。最后,通过使用new操作符来创建对象。
3.2 创建一个简单的集合对象
下面是一个使用构造函数创建集合对象的示例:
function Collection() {
this.items = [];
this.addItem = function(item) {
this.items.push(item);
};
this.removeItem = function(item) {
var index = this.items.indexOf(item);
if (index > -1) {
this.items.splice(index, 1);
}
};
this.printItems = function() {
console.log(this.items);
};
}
var collection1 = new Collection();
collection1.addItem('item1');
collection1.addItem('item2');
collection1.printItems(); // ['item1', 'item2']
var collection2 = new Collection();
collection2.addItem('item3');
collection2.addItem('item4');
collection2.printItems(); // ['item3', 'item4']
在上面的代码中,我们定义了一个名为Collection的构造函数,用于创建集合对象。在构造函数中,我们使用this关键字来指向实例化后的对象,并通过赋值来给实例化对象添加属性和方法。最后,通过使用new操作符来创建对象。
4. 总结
构造函数可以用来创建同一种类型的对象,构造函数的名称首字母通常大写。在构造函数中,this关键字是非常重要的,因为它是指向创建的实例化对象。只有使用new操作符才能创建一个实例化对象。构造函数的使用可以让我们更方便地创建对象,并且多个实例化对象可以共享属性和方法。