//构造函数
function Foo(name,age){
this.name = name;
this.age = age
//return this 默认有这行(能new构造也是因为return 的是this)
}
var f = new Foo(‘lice’,18)
var a = {},其实就是var a = new Object();
同理 var a = [],就是 var a = new Array();
function Foo(){},就是 var Foo = new Function();
所有引用类型(数组、对象、函数、null除外)都有一个隐式原型-proto-属性,所有函数都有个显式原型prototype属性,且boj.-proto- === Object.prototype
使用instanceof判断一个函数是否是构造函数,f instanceof Foo //true,原理如下图,它一直找,直到Object