Ich bin neu in Objekten in Javascript. Lesen Sie dieses Thema auf Ссылка und haben sich etwas verwirrt.
>Ich verstehe den Unterschied zwischen Funktionen und Objekten nicht. Auf der einen Seite soll Funktion sein und Instanz von Function (die ein Kind von Objekt ist) und so eine Funktion soll auch ein Objekt sein.
Andererseits wird das Objekt selbst als Schlüssel / Wert-Paar bezeichnet, wie zum Beispiel:
var User = {name:"Tomy", password:"secret"}
und das unterscheidet sich ziemlich von einer Funktionsdefinition in Bezug auf die Codekompatibilität ...
Kann ich Funktionen auf zwei verschiedene Arten erstellen?
var User = function () {this.name="Tomy"; this.password="secret";}
In diesem Beispiel enthält User
jetzt ein Objekt.
In diesem Beispiel enthält User
eine Funktion. Diese Funktion kann zum Erstellen von Objekten verwendet werden.
Sie können dann so viele Benutzer erstellen, wie Sie möchten.
%Vor%Ein realistischeres Beispiel wäre das:
%Vor%Generelle Konstruktoren (Funktionen, die Objekte erstellen) sind flexibler als Objektliterale und ermöglichen die bequeme und konsistente Erstellung von Objekten (Bugs sind leichter zu erkennen, weniger Doppelcode).
In beiden Methoden gibt es keine browserübergreifenden Inkonsistenzen.
Um zu verstehen, was das new
Schlüsselwort ist und was effektiv geschieht zum "Zeitpunkt der Erstellung", siehe Was ist das "neue" Keyword in JavaScript? und Wie funktioniert der neue Operator in JavaScript? >
Der erste erstellt eine Instanz eines Objekts mit zwei Eigenschaften. Sie können auf sie wie folgt zugreifen:
%Vor%Der zweite erstellt eine Definition eines Objekts, für die Sie separate Instanzen erstellen können, und sie haben separate Instanzen ihrer Eigenschaften. Beispiel:
%Vor% Die beiden sind nicht im entferntesten gleichwertig. Die erste Version erstellt ein Objekt mit den Eigenschaften name
und password
set. Die zweite Version erstellt eine Funktion, die nicht ausgeführt wurde; Es werden keine Eigenschaften festgelegt, bis new User
aufgerufen wird.
Tags und Links javascript class oop