原型浅析
定义
有很多层含义,从大的方面讲,可以认为这是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;">