关键词

JavaScript精炼之构造函数 Constructor及Constructor属性详解

JavaScript精炼之构造函数 Constructor及Constructor属性详解

什么是构造函数

在面向对象编程中,构造函数是创建对象的一种特殊方法。它用于创建并初始化由该类创建的对象,可以简单理解为一个模板,用来创建对象。

构造函数的语法

构造函数的语法格式为:

function ConstructorName(arguments) {
   // 对象属性和方法的初始化代码
}

其中,ConstructorName为构造函数的名称,arguments是传递给构造函数的参数,可以没有参数。

创建对象

使用构造函数创建对象的语法为:

var obj = new ConstructorName(arguments);

其中,ConstructorName为构造函数的名称,arguments是传递给构造函数的参数,可以没有参数。

例如,使用构造函数创建一个人类对象:

function Human(name, age) {
   this.name = name;
   this.age = age;
}

var person1 = new Human("Tom", 20);
var person2 = new Human("Jack", 30);

在上面的代码中,我们定义了一个Human构造函数,可以使用它来创建人类对象,每个人类对象有name和age属性,person1表示创建的Tom对象,person2表示创建的Jack对象。

Constructor属性

在JavaScript中,每个函数都有一个特殊的属性Constructor,它指向构造该函数的原型对象,可以用于判断对象实例的类型。

例如,检查person1和person2的构造函数:

console.log(person1.constructor == Human);     // 输出true   
console.log(person2.constructor == Human);     // 输出true   

在上面的代码中,我们打印了person1和person2的构造函数,结果均为Human。

示例一:使用构造函数创建动物对象

function Animal(type, weight) {
   this.type = type;
   this.weight = weight;
}

var animal1 = new Animal("cat", 5);
var animal2 = new Animal("dog", 10);

console.log(animal1.constructor == Animal);     // 输出true   
console.log(animal2.constructor == Animal);     // 输出true   
console.log(animal1.weight);   // 输出5

在上面的代码中,我们定义了一个Animal构造函数,可以使用它来创建动物对象,每个动物对象有type和weight属性,animal1表示创建的猫对象,animal2表示创建的狗对象。最后我们打印了animal1的weight属性,输出结果为5。

示例二:使用构造函数创建计算器对象

function Calculator() {
   this.result = 0;
   this.add = function(num) {
      this.result += num;
   };
   this.subtract = function(num) {
      this.result -= num;
   };
   this.clear = function() {
      this.result = 0;
   };
}

var calc = new Calculator();
calc.add(5);
calc.subtract(3);
console.log(calc.result);   // 输出2
calc.clear();
console.log(calc.result);   // 输出0

在上面的代码中,我们定义了一个Calculator构造函数,可以使用它来创建计算器对象,每个计算器对象有result、add、subtract和clear方法,用于计算一个数字的结果。最后我们打印了calc的result属性,输出结果为2,然后执行了clear方法,并再次打印结果,输出结果为0。

总结

构造函数在JavaScript中非常重要,可以用于创建对象并初始化对象的属性和方法,Constructor属性则可以用于判断对象实例的类型。熟练掌握构造函数的使用方法和语法,对于JavaScript编程非常有帮助。

本文链接:http://task.lmcjl.com/news/10719.html

展开阅读全文