JavaScript构造函数
2021-08-03 本文已影响0人
微语博客
在JavaScript编程中,构造函数是面向对象编程的基础。创建构造函数和普通函数一样,也是使用function关键字定义,但是构造函数的函数名习惯首字母大写。构造函数和普通函数的区别在于调用方式不一样,作用也不一样,构造函数用来新建对象实例的。
构造函数定义与调用
使用function关键字定义构造函数
function Person(){
//函数体
}
从上面的示例可以很清晰看出构造函数和普通函数的定义基本一样,只是名称的命名习惯不同,但是函数的调用却不同。普通函数直接函数名加括号调用,构造函数使用new关键字实例化为对象。
function Person(){
//函数体
}
var person = new Person();//创建person对象
Person 既是函数名,也是这个对象的类名
属性和方法
构造函数和对象一样,拥有方法和属性,而且这些方法和属性都会被实例化的对象所继承。在构造方法内部,指定属性和方法使用this关键字。
function Person(){
this.name = "Cherry";
this.speak = function (){
console.log("I speak English");
}
}
var person = new Person();
console.log(person.name);//Cherry
person.speak();//I speak English
上面的例子我们为构造函数创建了一个属性和一个方法,使用该构造函数实例化的对象都拥有该属性和方法。但是我们固定了属性和方法的值,所以显得不灵活,我们可以通过参数指定属性和方法的值。
var speak = function(){
console.log("I speak English");
}
function Person(name,speak){
this.name = name;
this.speak = speak;
}
var person = new Person("Cherry",speak);//实例化对象的时候传入实参
console.log(person.name);//Cherry
person.speak();//I speak English
这个例子与前一个结果一样,但是我们可以传入不同的实参,就可以有不同的结果。