简单两句话解释下prototype和__proto__

先上两句代码:函数

var Person = function () {};
var p = new Person();

把new的过程拆分红如下三步:spa

<1> var p={}; 也就是说,初始化一个对象p;prototype

<2> p.__proto__=Person.prototype;code

<3> Person.call(p);也就是说构造p,也能够称之为初始化p。对象

咱们通常只在写构造函数的时候会用到prototype,其实__proto__才是咱们常说的原型链,由于咱们通常都是在生成实例。blog

prototype只是在实现原型链中只是起到了一个辅助做用,换句话说,他只是在new的时候有着必定的价值,而原型链的本质,其实在于__proto__!原型链

相关文章
相关标签/搜索