В прошлом при создании "классов" в JavaScript я делал это следующим образом:
function Dog(name){
this.name=name;
this.sound = function(){
return "Wuf";
};
}
Однако я просто видел, что кто-то делает это так:
var Dog = (function () {
function Dog(name) {
this.name = name;
}
Dog.prototype.sound = function () {
return "Wuf";
};
return Dog;
})();
Можете ли вы сделать это в обоих направлениях или так, как я сделал это неправильно? В таком случае, почему? И в чем же разница между двумя с точки зрения того, в чем мы заканчиваем? В обоих случаях мы можем создать объект, сказав:
var fido = new Dog("Fido");
fido.sound();
Надеюсь, кто-то просветит меня.