如图,
1、不实例化base直接base.prototype也行?
2、prototype是什么意思?base.prototype是base的儿子?
3、_proto_是什么意思?base._proto_是base的父亲?是对象?
如图,
1、不实例化base直接base.prototype也行?
2、prototype是什么意思?base.prototype是base的儿子?
3、_proto_是什么意思?base._proto_是base的父亲?是对象?
8 回答4.5k 阅读✓ 已解决
6 回答3k 阅读✓ 已解决
5 回答2.6k 阅读✓ 已解决
5 回答6.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答2.4k 阅读
4 回答2.7k 阅读✓ 已解决
base.prototype
是base
的原型对象。该对象上会有一个constructor
属性指向base
。但是你的例子中,把base.prototype
替换为一个新的对象,所以它的上面没有了constructor
属性,通常最好的做法还是要把这个加回来。即:当
var a = new base()
时,会创建一个新的对象a
,该对象可以理解为继承自base.prototype
。$id
方法在对象a
上没有,就回从原型对象中去找。对象
a
内部有一个属性__proto__
会指向它的原型对象。base
本身是个函数实例,所以它的base.__proto__
指向的是Function.prototype
。所以总的来说:
base.__proto__
可以理解为是base
的父亲,是一个对象。但base.prototype
不可以理解为base
的儿子,但它俩之间有千丝万缕的关系。