构造函数
函数被new使用就可以称为构造函数,构造函数名一般首字大写;
new的魔法:
创建一个对象继承构造函数的prototype,this指向这个对象,执行构造函数的函数体;
构造函数如果没有返回值或者返回值是基本数据类型就返回this;如果返回的是引用类型则返回该引用;
原型
__proto__
每个引用类型(数组、对象、函数)都有一个隐式的原型属性__proto__指向其构造函数的prototype的属性值;
prototype
所有的函数都有一个prototype属性(显示的原型属性),无论什么时候只要创建一个函数就会根据一组特定的规则为该函数创建一个prototype属性,默认情况下prototype对象会有一个constructor(构造函数)属性指向prototype所在的函数的引用;所以修改了构造函数的原型,要记得在原型对象中将构造函数指回。