Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Javascript Funktionen

Mitglied: agowa338

agowa338 (Level 2) - Jetzt verbinden

02.03.2016, aktualisiert 03.03.2016, 1673 Aufrufe, 5 Kommentare

Hallo, habe gerade mehrere schönen Javascripte per mail bekommen und frage mich gerade, was eigentlich folgendes in einem Javascript bewirkt:
01.
!function(r) {/*code*/} (this);
02.
!function() {/*code*/} ();
03.
var Variable = function() {/*code*/} ();
mir ist nur die Syntax für Funktionen bekannt.
01.
function()  {/*code*/}
Ach ja, handelt sich übrigens um ein Javascript für den Windows Skript Host, falls das was ändert...
Mitglied: 114757
LÖSUNG 02.03.2016, aktualisiert 03.03.2016
Moin.
Zitat von agowa338:
!function(r) {/*code*/} (this);
Hier wird der Funktion das aktuelle Objekt this übergeben welches dann im Funktions-Body als Variable r zur Verfügung steht, und das Ergebnis der Funktion wird dann durch das Ausrufezeichen "negiert".

!function() {/*code*/} ();
Das gleiche wie oben nur ohne Parameterübergabe an die Function.
var Variable = function() {/*code*/} ();
Hier wird das Ergebnis der Ausführung der Funktion der Variablen zugewiesen.

Die zusätzlichen Klammern nach der Funktionsdefinition bewirken einfach nur das "direkte ausführen" dieser anonymen Funktionen ohne Namen.
Der Name der Funktion ist quasi die Funktionsdefinition selber also der Teil:
function() {/*code*/}

Ausgeführt wird sie dann durch das folgende Klammernpaar
!function() {/*code*/} ()
(Rückgabewert der Funktion negieren)(Anonyme Funktion) (Ausführen)


Gruß jodel32
Bitte warten ..
Mitglied: agowa338
03.03.2016 um 10:44 Uhr
Also das Ausrufezeichen am Zeilenanfang vor einer Funktion hat keine besondere Bedeutung (wenn der Wert nicht weiter verarbeitet wird).
Bitte warten ..
Mitglied: 114757
03.03.2016, aktualisiert um 10:51 Uhr
Zitat von agowa338:

Also das Ausrufezeichen am Zeilenanfang vor einer Funktion hat keine besondere Bedeutung (wenn der Wert nicht weiter verarbeitet wird).
Wie gesagt, das Ausrufezeichen negiert den Rückgabewert der anonymen Funktion( das was die Funktion als Ergebnis via Return zurückgibt)

Z.B. Die Funktion gibt true zurück, dann wird daraus letztendlich false wegen dem Ausrufezeichen.
Bitte warten ..
Mitglied: agowa338
03.03.2016 um 10:56 Uhr
Ich meinte eigentlich, dass es keine weitere Auswirkung auf den Programmablauf hat.

Also die Zeilen bewirken das gleiche:
!function() {} ();
function() {} ();

weil hier der Rückgabewert sowieso verloren geht, oder nicht?
Bitte warten ..
Mitglied: 114757
LÖSUNG 03.03.2016, aktualisiert um 17:23 Uhr
Zitat von agowa338:
weil hier der Rückgabewert sowieso verloren geht, oder nicht?
Es kommt drauf an was die Funktion zurückgibt...das könnte z.B. auch eine weitere Function sein., das kann ich hier aber leider nicht sehen.

Siehe dazu auch folgenden Artikel
http://stackoverflow.com/questions/7586870/in-javascript-what-is-the-ad ...
Bitte warten ..
Ähnliche Inhalte
JavaScript

Werteübergabe an JavaScript Funktion

gelöst Frage von tobmesJavaScript2 Kommentare

Hi Experten, ich habe hier ein kleines Problem mit meiner JavaScript Funktion. Hier mal der Aufruf der Funktion: Hier ...

JavaScript

Javascript Funktion wird nicht "aufgerufen"

gelöst Frage von StillBadJavaScript12 Kommentare

Hallo ich möchte eine Javascript AI von Code Bullet verbessern. Ich dachte das ist eine gute Idee da ich ...

JavaScript

Javascript - 1 Filter-Funktion für Mehrere Tabellen

Frage von JuliusssJavaScript6 Kommentare

Hallo zusammen, ich bin neu bei Javascript und prompt auch schon in ein Problem gerannt, das ich nicht scheine ...

JavaScript

JavaScript Map

Frage von tobmesJavaScript7 Kommentare

Hi, ich bins mal wider :). Ich spiele immernoch mit JavaScript herum und hänge jetzt mal wieder. Ich habe ...

Neue Wissensbeiträge
Sicherheit

Chrome 79 übermittelt eingegebene Kennwörter nach Hause

Information von DerWoWusste vor 2 TagenSicherheit15 Kommentare

Ab sofort warnt Chrome standardmäßig Nutzer davor, wenn aus Leaks bekannte Passwörter zum Einsatz kommen. Beim Besuch einer Website, ...

Viren und Trojaner
Trend Micro WFBS 10 SP1 Patch 2185
Tipp von Abramelin vor 2 TagenViren und Trojaner3 Kommentare

Hi, Hab gerade gesehen das Patch 2185 für TM WFBS 10 SP1 erschienen ist! Werde mal Morgen den Patch ...

Viren und Trojaner

Neuer Virus lässt Windows im abgesicherten Modus starten

Tipp von transocean vor 3 TagenViren und Trojaner7 Kommentare

Moin, lest selbst. Grüße Uwe

Sicherheit
Böser Bug in Domänenkennwortrichtlinie!
Information von DerWoWusste vor 3 TagenSicherheit2 Kommentare

Ich spiegele mal Borncity: In Kürze: Nutzt Ihr eine Domänen-Kennwortrichtlinie der herkömmlichen Art (keine PSO-Richtlinie)? Ja? Und plant Ihr, ...

Heiß diskutierte Inhalte
Netzwerke
Netzwerkstruktur für Zuhause 1Anschluss 2 Netze
Frage von chrishaefNetzwerke27 Kommentare

Hallo liebes Forum, Ich hätte da mal eine Frage an die Profis. Bei uns liegt ein DSL Anschluss im ...

Windows 7
Windows 7 - Ein DSL Speedtest - Mehrere Browser - Unterschiedliche Ergebnisse
Frage von AusAltwirdNeuWindows 725 Kommentare

Hallo zusammen, mein PC hat zwei Rj45 Anschlüsse. Beide sind auf Gigabit Vollduplex eingestellt. An beiden Anschlüssen erreiche ich ...

Batch & Shell
Eingabeaufforderung macht Pause bei Datensicherung mit Robocopy auf DVD
Frage von anmelderBatch & Shell23 Kommentare

Hallo, ich sichere einige Daten per Robocopy auf DVD-RAM. Wenn ich nicht am Rechner sitze macht der Befehl nach ...

Windows Server
Neuinstallation Windows Server 2016 - wie würdet Ihr vorgehen
Frage von mollyneoWindows Server21 Kommentare

Moin, ich habe gerade ein kleines Problem mit einer bestehenden Installation eines "Fachmanns" und möchte gern wissen, wie ihr ...