下面的代码,我们可以看出,Rabbit的原型对象prototype
和Rabbit实例对象r1的对象原型r1.__proto__
里面都有一个constructor
属性:
很多情况下,我们需要手动利用constructor这个属性指回原来的构造函数,比如我们刚才的
Rabbit
构造函数里面只有一个方法sing
,如果我们想把多个方法放到Rabbit
中,比如下面这样:
这时我们的Rabbit
里面就有两个方法了,但是! 如果我们有很多很多的方法要放在Rabbit
里面,那是不是可以考虑把这些方法全都包裹在一个对象里面呢?
这样写结构就清楚了很多,但是,我们看看后果是什么。
我们重新new一个r1,然后看看此时r1.__proto__
和Rabbit.prototype
是什么样子的: