Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: Webzeugs ::  JS: Verschachtelte Funktionen     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Hoppelmoppel
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.09.2008
Beiträge: 41
Beitrag Hoppelmoppel Mitglied 13:22:08 22.01.2013   Titel:   JS: Verschachtelte Funktionen            Zitieren

Hallo liebe Javascript-Gemeinde,

vorab, meine Kenntnisse zur Javascript-Syntax sind veraltet und begrenzt, aber ich kämpfe mich durch.

Hier ein Auszug aus einem Codeblock (anonymisiert) welchen ich nicht so recht verstehe:

Javascript:
1
2
3
4
5
6
7
8
9
10
11
var _toggle = false;
var _proxy = new WorkProxy();
 
function WorkProxy()
(
    var Obj;
 
    function Check(text) { ... }
 
    this.Toggle = function () { ... }
)


Frage 1: eine Definition einer Funktion "Check()" in einer (Eltern-)Funktion sieht für mich echt seltsam aus, aber in JS geht es halt. Ich lese es so, daß das Objekt "WorkProxy" auf diese Art dynamisch um eine Funktion "Check()" erweitert wird.

Frage 2: "this.Toggle = function" ist auch eine Funktionsdefinition? Wieso ist sie SO definiert, und nicht als Funktion in Funktion? Kommt am Ende dasselbe heraus, also sind beide Arten identisch? Warum dann so unterschiedliche Definitionen?

Frage 3: gibt es eine Quelle (online oder gedruckt), welches sich allumfassend mit diesen neuen Techniken beschäftigt (Objekte, Klasse, Prototyping usw.)?

Danke für alle Tips!

_________________
Hoppelmoppel


Zuletzt bearbeitet von Hoppelmoppel am 13:37:23 22.01.2013, insgesamt 1-mal bearbeitet
LordJaxom
Mitglied

Benutzerprofil
Anmeldungsdatum: 23.11.2005
Beiträge: 5790
Beitrag LordJaxom Mitglied 14:23:14 22.01.2013   Titel:              Zitieren

Zu 1. Das definiert lediglich eine Funktion Check(), die nur im Scope von Work() sichtbar ist. Diese Funktion ist nicht Bestandteil von Obj (Obj kommt in dem Statement nirgends vor).

Zu 2. DAS definiert eine Funktion, die Methode des Objekts ist, welches die Funktion WorkProxy() erzeugt. Obj hat damit aber immernoch nichts zu tun. Die Variablendeklaration in der ersten Zeile von WorkProxy kann komplett entfallen.
SideWinder
Moderator

Benutzerprofil
Anmeldungsdatum: 19.10.2001
Beiträge: 19159
Beitrag SideWinder Moderator 14:26:08 22.01.2013   Titel:              Zitieren

Nachgefragt: Könnte man da also von einer Art private/public-Unterschied sprechen?

MfG SideWinder

_________________
http://www.dilbert.com/2009-06-11/
http://www.dilbert.com/2009-06-14/
Shade Of Mine
Moderator

Benutzerprofil
Anmeldungsdatum: 04.05.2001
Beiträge: 20206
Beitrag Shade Of Mine Moderator 14:43:44 22.01.2013   Titel:              Zitieren

SideWinder schrieb:
Nachgefragt: Könnte man da also von einer Art private/public-Unterschied sprechen?


Jein.
Es wird oft verwendet um soetwas wie public/private zu haben, aber prinzipiell ist es nichts anderes als Sichtbarkeitsbereiche. Die Funktion Check() ist außerhalb einfach nur unsichtbar.

Wenn man aber ein handle auf Check hat, kann man es aufrufen.

_________________
A language that doesn't affect the way you think about programming is not worth knowing.
Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety.
ch++
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.12.2012
Beiträge: 88
Beitrag ch++ Mitglied 22:19:22 26.01.2013   Titel:              Zitieren

zu 3)
Es gibst Mozilla Developer Network, MDN. Die unterscheiden zwar teilweise nicht zwischen eigenen, proprietären Sachen und dem Standard, aber wenn man einfach nur eine Kurzdefinition einer Funktion braucht, ist das am besten geeignet.
chris++@off
Unregistrierter




Beitrag chris++@off Unregistrierter 08:58:07 28.01.2013   Titel:              Zitieren

Hier findest du eine gute Zusammenfassung von speziellen JS-Konstrukten. http://www.codeproject.com/Articles/248450/JavaScript-Jargon
Hoppelmoppel
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.09.2008
Beiträge: 41
Beitrag Hoppelmoppel Mitglied 10:42:46 10.08.2017   Titel:              Zitieren

Ups, ganz schön spät, dennoch vielen Dank an alle für Eure Antworten! :D

_________________
Hoppelmoppel
C++ Forum :: Webzeugs ::  JS: Verschachtelte Funktionen   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.