我们在调用构造函数时,会继承它的所有属性,比如一个Bird()
1 | function Bird(name){ |
我们创建了几个个对象来调用构造函数
1 | var bird1 = new Bird("bird1"); |
然后,我们突然发现这些新建的对象都有一个共同的属性:它们的腿的数量都是2;
于是我们可以直接进行修改
1 | bird1.numLegs = 2; |
在数量少的时候,我们可以很轻松的修改,如果这个构造函数被调用了一百万次,那么我们如何修改?
在这里使用prototype函数进行修改
1 | Bird.prototype.numLegs = 2; |
这样的话,我们的构造函数就相当于:
1 | function Bird(name){ |
当我们再次使用对象时就可以输出它的值
1 | console.log(bird1.numLegs); //输出2 |
可见,可以采用prototype方法来减少重复代码,这样可以很大程度避免低级错误。
每个对象都有自己的prototype属性,如果它是由构造函数创建而来的,那么它就是它的构造函数的一部分