在这种情况下会生成多个相同的原型对象吗?

时间:2016-11-21 05:51:52

标签: javascript prototype

例如,js代码是:

function Fruit() {this.type = "fruit";};
function Apple() {this.name = "apple"; this.__proto__ = new Fruit();}

如果我多次致电new Apple(),会产生相同数量的new Fruit()吗?还是取决于实施?

1 个答案:

答案 0 :(得分:1)

不,不会。

原型由所有对象共享。苹果的任何对象都会有类似于Fruit的原型,但每次都不会创建新的水果对象。

但设置_proto是一种不好的做法,你可以将其作为

Apple.prototype = Object.create(Fruit.prototype),两者都有相同的效果

供参考proto reference