Heim > Web-Frontend > js-Tutorial > Grundlegendes zur prototypischen Vererbung von JavaScript – Ein Leitfaden für Entwickler

Grundlegendes zur prototypischen Vererbung von JavaScript – Ein Leitfaden für Entwickler

Barbara Streisand
Freigeben: 2024-11-15 07:50:03
Original
534 Leute haben es durchsucht

Understanding JavaScript

Hey liebe Entwickler! Nachdem ich jahrelang mit der klassenbasierten Vererbung von PHP gearbeitet hatte, fühlte es sich an, als würde ich in die prototypische Vererbung von JavaScript eintauchen und lernen, mit der linken Hand zu schreiben. Heute möchte ich teilen, was ich über diesen einzigartigen Vererbungsansatz gelernt habe, der JavaScript zu etwas Besonderem macht.

Die Grundlagen – Was macht den Unterschied?

Im Gegensatz zu PHP oder Java, wo wir mit Klassen arbeiten, verwendet JavaScript Prototypen. Jedes Objekt in JavaScript verfügt über einen internen Link zu einem anderen Objekt, das als „Prototyp“ bezeichnet wird. Betrachten Sie es als einen Fallback-Mechanismus – wenn Sie versuchen, auf eine Eigenschaft zuzugreifen, die in einem Objekt nicht vorhanden ist, sucht JavaScript im Prototyp des Objekts danach.

const pet = {
  makeSound() {
    return "Some generic sound";
  }
};

const cat = {
  purr() {
    return "Purrrr";
  }
};

// Set pet as the prototype of cat
Object.setPrototypeOf(cat, pet);

// Now cat can use methods from pet
console.log(cat.makeSound()); // "Some generic sound"
console.log(cat.purr());      // "Purrrr"
Nach dem Login kopieren

Die Protokette – sie geht tiefer

Hier wird es interessant. Prototypen können ihre eigenen Prototypen haben und so die sogenannte „Prototypenkette“ bilden. JavaScript durchsucht diese Kette so lange, bis es findet, was es braucht, oder auf einen Null-Prototyp trifft.

const animal = {
  eat() {
    return "Nom nom nom";
  }
};

const pet = {
  makeSound() {
    return "Some generic sound";
  }
};

const cat = {
  purr() {
    return "Purrrr";
  }
};

Object.setPrototypeOf(pet, animal);
Object.setPrototypeOf(cat, pet);

// cat can now access methods from both pet and animal
console.log(cat.purr());      // "Purrrr"
console.log(cat.makeSound()); // "Some generic sound"
console.log(cat.eat());       // "Nom nom nom"
Nach dem Login kopieren

Das Konstruktormuster – ein vertrauterer Ansatz

Wenn Sie eine klassenbasierte Sprache wie PHP verwenden, kommt Ihnen das Konstruktormuster möglicherweise bekannter vor:

function Animal(name) {
  this.name = name;
}

Animal.prototype.eat = function() {
  return `${this.name} is eating`;
};

function Cat(name) {
  Animal.call(this, name);
}

// Set up inheritance
Cat.prototype = Object.create(Animal.prototype);
Cat.prototype.constructor = Cat;

Cat.prototype.purr = function() {
  return `${this.name} says purrrr`;
};

const felix = new Cat("Felix");
console.log(felix.eat());  // "Felix is eating"
console.log(felix.purr()); // "Felix says purrrr"
Nach dem Login kopieren

Modernes JavaScript – Klassen unter der Haube

ES6 führte die Klassensyntax ein, die PHP-Entwicklern vielleicht bekannt vorkommt. Aber lassen Sie sich nicht täuschen – es geht nur um syntaktischen Zucker über prototypische Vererbung:

class Animal {
  constructor(name) {
    this.name = name;
  }

  eat() {
    return `${this.name} is eating`;
  }
}

class Cat extends Animal {
  purr() {
    return `${this.name} says purrrr`;
  }
}

const felix = new Cat("Felix");
Nach dem Login kopieren

Profi-Tipps aus den Schützengräben

Nachdem ich jahrelang mit PHP und JavaScript gearbeitet habe, sind hier einige Tipps, die ich gelernt habe:

  1. Komposition nach Möglichkeit der Vererbung vorziehen
  2. Halten Sie Prototypketten flach – tiefe Ketten können die Leistung beeinträchtigen
  3. Verwenden Sie die Klassensyntax für saubereren Code, aber verstehen Sie Prototypen zum Debuggen
  4. Legen Sie immer die Konstruktoreigenschaft fest, wenn Sie Vererbungsketten manuell erstellen

Zusammenfassung

Das Verständnis der prototypischen Vererbung mag sich zunächst seltsam anfühlen, insbesondere wenn Sie mit PHP oder Java arbeiten. Aber sobald es Klick macht, werden Sie seine Flexibilität und Leistung zu schätzen wissen. Es ist eine dieser JavaScript-Funktionen, die Sie dazu bringt, anders über objektorientierte Programmierung zu denken.

Sind Sie bei der JavaScript-Vererbung auf interessante Herausforderungen gestoßen? Schreiben Sie unten einen Kommentar – ich würde gerne Ihre Geschichten hören!

Das obige ist der detaillierte Inhalt vonGrundlegendes zur prototypischen Vererbung von JavaScript – Ein Leitfaden für Entwickler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage