folk me on github

返回顶部

简单两句话解释下prototype和__proto__

先上两句代码:

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

把new的过程拆分成以下三步:

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

<2> p.__proto__=Person.prototype;

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

我们一般只在写构造函数的时候会用到prototype,其实__proto__才是我们常说的原型链,因为我们一般都是在生成实例。

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

posted @ 2016-10-26 16:34  Freak_余震  阅读(133)  评论(0编辑  收藏  举报