构造函数概念
- 构造函数其实是一种特殊的函数,主要用来初始化对象,也就是为对象成员变量赋初始值,它总与new关键字一起使用。
- 我们可以把对象里面一些公有的属性和方法抽象出来封装到这个函数里面。
- 这样我们就可以通过一个构造函数创建多个对象,这些对象拥有相同的构造,都可以使用这个构造函数的方法和属性。
构造函数使用
构造函数的创建
function Dog(){
//构造函数中的属性
this.name = "贝贝";
//构造函数中的方法
this.bark = function(){
console.log("汪汪汪");
}
}
注:
- 构造函数一般首字母会大写,为了和普通函数区分
- 构造函数的属性和方法前必须加this关键字,指代要生成的对象
构造函数的调用
- new 就是执行构造函数,返回一个对象,不写new就是普通函数的调用,没有创造对象的能力
function Dog(){}
var d1 = new Dog();
var d2 = Dog();
- 调用函数时,如果不传递参数,()可以不写,如果传递参数就必须写,建议都写上
function Dog(){}
var d1 = new Dog();
var d2 = new Dog;
- 构造函数中的this,由于和 new 连用的关系,是指向当前实例对象的
function Dog(){
console.log(this);
}
var d1 = new Dog();// this => d1
var d2 = new Dog();// this => d2
构造函数的return
function Dog(){
this.name = "贝贝";
this.bark = function(){
console.log("汪汪汪");
}
// return 0;
// return [];
}
var d1 = new Dog();
console.log(d1);
- 不写return,返回一个对象
- return一个基本数据类型,结果不变,依旧返回一个对象
- return一个复杂数据类型,返回一个复杂数据类型
构造函数总结
- 一个构造函数可以通过new创建多个实例对象
- 创建构造函数时,里面的属性和方法前必须加this
- 构造函数不需要return 就可以返回结果