首页 > 原型链、继承怎样去理解问题

原型链、继承怎样去理解问题

实例对象里面有个_proto_,构造函数里面有个prototype,看了半天就是没看明白,谁能一语惊破天么!!!


楼主先搞懂 __proto__prototype 的区别。

可以看下官方文档 https://developer.mozilla.org...

关于继承,我前段时间刚好回顾了下 http://xwartz.github.io/pupa/...


我也跟你发个地址吧,这个特别浅显易懂。http://www.cnblogs.com/wangfu...。其实呢 每个对象都有个__proto__属性,这个东西指向的是生成改对象prototype。所以js对象(函数)里面,都有些自带的属性,比如__proto__,prototype。具体你自己好好看哈,看完这个你就懂了其继承机制了。


文档说的行么?

一个实例对象的__proto__就是她构造函数上的prototype,来举个例子:

var a = function() {};

console.log(new a().__proto__ === a.prototype); //true

这里http://varnull.cn/cong-__prot...是我对原型链的理解,可以交流哈


在网上找了张图


var Person = function() {}
var me = new Person()

me.__proto__ === Person.prototype

不过 __proto__ 非标准, 不推荐使用.


1.所有new出来的叫做实例(等号左边);
2.被new的fn叫做构造函数(等号右边->new的右边);
3.__proto__和prototype都是属性名,一个名字而已,就跟json={a:1}中的a一样一样!
4.3中那两个属性名的值是一个json,但json是一个复合数据类型,所以又叫做指针(本质还是属性名,名字而已,just so so);
5.prototype的值又叫做“原型对象”,__proto__的值又叫做“原型链对象”;
6.prototype是挂在构造函数下面的,是构造函数的属性;
7.构造函数的prototype跟实例没什么直接联系,就像你妈是你妈你是你,你俩通过血缘关系才有联系;
8.__proto__就是实例跟构造函数的血缘关系;
9.__proto__的值是构造函数prototype的值;
10.竟然没问constructor;
11.估计10没问是因为早就会了,所以我刚刚1-9纯属测试键盘,当然有不对的地方还请指正,我回去好修理键盘;
12.以上。

【热门文章】
【热门文章】