Я просто вхожу в JavaScript, и я пытаюсь обернуть голову вокруг прототипального наследования. Похоже, что существует несколько способов достижения такого же эффекта, поэтому я хотел посмотреть, есть ли какие-либо передовые методы или причины делать что-то одностороннее. Вот о чем я говорю:
// Method 1
function Rabbit() {
this.name = "Hoppy";
this.hop = function() {
console.log("I am hopping!");
}
}
// Method 2
function Rabbit() {}
Rabbit.prototype = {
name: "Hoppy",
hop: function() {
console.log("I am hopping!");
}
}
// Method 3
function Rabbit() {
this.name = "Hoppy";
}
Rabbit.prototype.hop = function() {
console.log("I am hopping!");
}
// Testing code (each method tested with others commented out)
var rabbit = new Rabbit();
console.log("rabbit.name = " + rabbit.name);
rabbit.hop();
Все они, похоже, имеют одинаковый эффект индивидуально (если только я чего-то не хватает). Так один метод предпочтительнее другого? Как вы это делаете?