在创建 javascript 对象时,我可以在构造函数或原型中放置方法声明。例如,假设我想要一个具有 Name 属性和 Bark 方法的 Dog 类。我可以将 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"
我应该更喜欢这些方法中的一种吗?使用一个比另一个有什么优势吗?在幕后,这两种方法最终会做完全相同的事情吗?大多数人倾向于哪种方法?
谢谢您的帮助。