361 Stimmen

Was ist der instanceof-Operator in JavaScript?

のことです。 instanceof Schlüsselwort in JavaScript kann beim ersten Mal ziemlich verwirrend sein, da die meisten Leute denken, dass JavaScript keine objektorientierte Programmiersprache ist.

  • Was ist das?
  • Welche Probleme werden damit gelöst?
  • Wann ist es angebracht und wann nicht?

0voto

fider Punkte 1843

@SebastianSimon meine letzte Antwort ist 8 Jahre alt (als ich lahmte) und es ist möglich, dass ich irgendeinen Bull*hit geschrieben habe :)

Kurz gesagt - derzeit sind die einzigen Fälle, in denen ich die instanceof ist, wenn ich die class Instanzen und das Verhalten hängt von der Klasse ab, die ich erhalten werde, z. B. Ich möchte unterscheiden, ob 404 ErrorA (Ressource nicht vorhanden) oder ErrorB (Dienst nicht gefunden) ist - Bibliothek Antwortcodes waren verwirrend, aber für mein Glück warf es mit verschiedenen Fehlerklassen.

Definitiv (derzeit) würde ich NICHT verwenden, um Typen zu prüfen, die Primitive widerspiegeln - Sie können nicht sicher sein, ob die Bibliothek 'msg' o new String('msg') .

Beide haben Methoden, die zu String Klasse, weil 'msg' Primitiv wird intern in ein String-Objekt umgewandelt. Intern bedeutet durch Interpreter. Sie sind beide Strings sondern instanceof Operator scheint hier unzureichend zu sein - um zu prüfen, ob etwas primitiv oder eine Klasse ist, würde ich mix of verwenden typeof && instanceof - aber nur für etwas, das von einer externen JS-Bibliothek zurückgegeben wird.

Momentan löst TypeScript dieses Problem und man muss nicht mehr solche umständlichen Prüfungen mit typeof y instanceof .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X