一个普通的函数被用于创建一个类对象时,它就被称作构造函数,或者构造器。(为方便理解,你可以将JavaScript中构造器的创建理解为其他语言中的类的创建,目的就是利用它通过new来实列一个对象)
特点:
1.在书写规范上,我们习惯将他名称的首字母大写。
2.通过new来创建一个对象。
3.无需在内写入return也会有返回值,而且返回的是一个对象。
function Me(name,age) { //创建构造函数。
this.name = name;
this.eat() {
console.log("真香!"); //里面处处是this。this指向它的对象me。
}
}
var me = new Me(); //实列对象。
其实构造器还有一个好处,因为构造器每创建一个实列对象时,都会在堆当中开辟一个新的空间,但是在开辟两个新空间时候存在相同的属性,比如两个实列对象里的eat都是一样的,从而造成内存上面的浪费,于是乎,我们可以利用JavaScript的原型链来解决。
Me.prototype.eat = function() {
console.log("真香!");
}
这样把相同的eat提出来。构造器实列的两个至多个的实列对象,他们都有相同的eat(即为调用一个存在于原型对象的eat方法,而非每个实列都单独用自己的代码开辟一个eat方法。从而节约内存。)
构造函数会被constructor指向,比如原型里的。
/哪里不对的话还请多多指教。不胜感激。/