原型浅析

定义


有很多层含义,从大的方面讲,可以认为这是js提供的一个种技术称呼。
从小的方面讲,原型是构造函数的一个prototype属性,这个属性的内容实例可以共享。

分类


显示原型:prototype

    作用: 是为了让自己的实例共享一些属性和方法;
    构造函数默认就有一个prototype属性,这个属性存储的是原型对象的引用地址;
    它的存在就是为了引导实例的_proto_属性;

隐式原型:__proto__

   作用: 是为了记录自己可以去哪里找共享的属性和方法;
    通过构造函数创建的实例,也有一个__proto__属性,这个属性存储的也是原型对象的引用地址

原型对象


1、所有的函数都有prototype属性;
2、所有的原型对象都有construcotr属性;
3、所有的实例都有__proto__属性;
4、实例的__proto__与构造函数的prototype指向相同;

constructor的作用

    实例可以通过它得到对应的类型;    
   var samo = new Dog();
   console.log(samo.constructor.name);

添加原型对象的方法

 
 

置换原型


 
 
 

其他


1. 把原型赋值相关的代码放到构造函数中,会重复赋值执行,会浪费性能,所以一般都写在外面。
2.  比较实例的__proto__ 和 构造函数的prototype相等;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

posted @ 2017-11-14 09:18  minimissile  阅读(166)  评论(0编辑  收藏  举报