In der Vergangenheit, als „Klassen“ in JavaScript erstellen, habe ich es so gemacht:Verwirrung darüber, wie Klassen zu schaffen, in JavaScript
function Dog(name){
this.name=name;
this.sound = function(){
return "Wuf";
};
}
aber ich sah nur jemand wie diese stattdessen tun:
var Dog = (function() {
function Dog(name) {
this.name = name;
}
Dog.prototype.sound = function() {
return "Wuf";
};
return Dog;
})();
Können Sie es auf beide Arten tun, oder ist es so, dass ich es falsch gemacht habe? In diesem Fall, warum? Und was genau ist der Unterschied zwischen den beiden in Bezug auf was wir am Ende haben? In beiden Fällen können wir ein Objekt erstellen, indem wir sagen:
var fido = new Dog("Fido");
fido.sound();
Ich hoffe, jemand wird mich erleuchten.
Weitere Informationen zur Verwendung von Konstruktorfunktionen und Prototypen finden Sie hier: http://StackOverflow.com/a/16063711/1641941 hoffe, es hilft – HMR