构造函数
可以理解为构造函数是相对而言的,有变量new这个函数,那这个函数就是这个变量的构造函数。如:
function fun(name,age){
this.name = name;
this.age = age;
console.log('我是调用我的变量的构造函数')
}
let variable = new fun('zhangsan','18')
原型
给构造函数添加共享的属性和方法。原型挂载在构造函数里,要先有构造函数,才会有原型。
为什么要有原型呢?
因为构造函数在每次被实例的时候方法都会被重新分配内存,所以需要解决内存问题,而且实例对象还有需要共用构造方法的时候。
function fun(name,age){
this.name = name;
this.age = age;
this.method = function()
{ return "构造函数下的方法" }
}
fun.prototype.Exhibition = function()
{ return this.name+" "+this.age; }
let zhangsan = new fun('zhangsan','18')
let lisi = new fun('lisi','18')
console.log(zhangsan.method===lisi.method);
console.log(zhangsan.Exhibition===lisi.Exhibition);