原型:
* 在构造函数中 有一个prototype属性,叫原型,也是一个对象,是给程序员用的,是标准的属性
* 在实例对象中,有一个__proto__属性,叫原型,也是一个对象,是给浏览器用的,不是标准属性,一般不用
*
* 在 构造函数中的prototype 中添加的属性和方法,实例对象可以直接调用
* 正常的写法:实例对象.proto.属性-----》实例对象.属性
*
* 本身在构造函数中定义的属性和方法,当实例化对象时,实例对象中的属性和方法都在自己的空间中存在的,如果是多个对象,这些属性和方法都在单独的空间里面,浪费内存,所以为了数据共享,节省空间,可以把一些共用的属性和方法写在原型对象中
*
* 原型的作用之一: 数据共享,节省空间
* 构造函数.prototype.属性=值;
* 构造函数.prototype.方法=function(){}
*
* 简单写法:
* 构造函数.prototype={
* constructor:构造函数,
* 属性:属性值,
* 方法:function(){
* }
* }
*
* 构造函数,实例对象,原型对象 三者的关系
*
* 构造函数中的 prototype属性(原型对象) 中一个constructor属性,和构造函数一样,constructor执行原型对象所在的构造函数
* 实例对象中的__proto__属性指向 prototype
* 构造函数 实例化 实例对象