/**
* 函数A产生对象a:new A() => a
* 函数A本身自带原型对象:A.prototype
* 对象a有个隐式原型指向函数A原型对象:a.__proto__ === A.prototype
*
* 函数A的原型对象 A.prototype => {} <= new Object()
* 函数Object本子自带原型对象:Object.prototype
* 函数A原型对象A.prototype有个隐式原型指向函数Object原型对象:A.prototype.__proto__ === Object.prototype
* Object.prototype对象有个隐式原型指向null
*
* new Function => Object // typeof Object => 'function'
* Object.__proto__ => Function.prototype
* new Object => Function.prototype
*
* new Function => A
* A.__proto__ => Function.prototype
*/