在创建 javascript 对象时,我可以将方法声明放在构造函数或原型中。例如,假设我想要一个 Dog 类,它具有 Name 属性和 Bark 方法。我可以将 Bark 方法的声明放到构造函数中:
var Dog = function(name) {
this.Name = name;
this.Bark = function() {
alert(this.Name + " bark");
};
}
或者我可以把它作为原型对象的一个方法:
var Dog = function(name) {
this.Name = name;
}
Dog.prototype.Bark = function() {
alert(this.Name + " bark");
};
当我实例化 Dog 类型的对象时,这两种方法似乎都能很好地工作:
var dog = new Dog("Fido");
dog.Bark(); //Both approaches show "Fido bark"
我是否应该选择这两种方法中的一种?使用其中一种方法有什么好处吗?在幕后,这两种方法最终会完全做同样的事情吗?大多数人倾向于哪种方法?
谢谢你的帮助。