这是动物对象的构造函数。
function Animal(name, sound) {
this.name = name;
this.sound = sound;
this.makeSound = function() {
alert(sound);
}
}
我发现开发人员可以通过
将实例方法添加到Animal类Animal.prototype.makeSound = function() { alert(this.sound); };
并从构造函数中排除makeSound方法。使用这种原型设计模式有什么好处?
答案 0 :(得分:8)
原型版本只应创建一次并存储在内存中,而构造函数版本将在内存中创建一个新函数并将其与对象一起存储。
这更像是一个内存管理的东西。从功能上讲,它几乎完全相同。
答案 1 :(得分:2)
对象实例的“存在”原型。当您创建其中一个对象时,该数据已经优化为已存在,而不是每次实例化时都更改该对象。 ......还有Tejs刚刚说的话。
答案 2 :(得分:1)
此外,您可以公开访问可能有用的原始方法(Animal.prototype.makeSound
)。