| HTML, JavaScript, AJAX und CSS Probleme mit HTML? Netscape oder IE funktionieren nicht so, wie sie sollen? Stellt eure HTML-Fragen hier im Forum und diskutiert eure Probleme mit anderen Entwicklern. |
 |

02-09-2010, 21:03
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.178
|
|
Verständnisfrage zu Closures
Also ich habe folgenden Code:
PHP-Code:
function funktionA()
{
var variable = 'bla';
function funktionB()
{
alert (variable);
}
funktionB();
}
funktionA();
Anstelle von function funktionB() kann ich ja auch so was schreiben:
PHP-Code:
funktionB = function()
{
alert (variable);
}
oder
PHP-Code:
var funktionB = function()
{
alert (variable);
}
Also. Bei einem funktionB = function() hängt die Funktion nach dem Aufruf von funktionA() im window-Objekt. Um das zu verhindern, wird da wohl die Variante var funktionB = function() genommen, um das zu verhindern.
Aber! Und jetzt kommt meine eigentliche Frage. Was ist denn nun der Unterschied zwischen var funktionB = function() und function funktionB()? Auf beide kann man nicht direkt zugreifen und sie hängen auch nicht im window-Objekt.
Peter
PS: Ich werde diese Sprache wohl nie ganz begreifen.
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

02-09-2010, 21:15
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.455
|
|
Zitat:
Zitat von Kropff
Was ist denn nun der Unterschied zwischen var funktionB = function() und function funktionB()?
|
Im großen und ganzen ist der Unterschied: Es gibt keinen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

02-09-2010, 21:34
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.178
|
|
Zitat:
Zitat von wahsaga
Im großen und ganzen ist der Unterschied: Es gibt keinen.
|
Und was soll dann der Sch***ß? Ich bastel hier schon eine Stunde herum, um endlich mal einen Unterschied zu finden und dann das. Wieso einfach, wenn es auch kompliziert geht?
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

02-09-2010, 21:37
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.455
|
|
Und warum willst du auf Teufel komm raus Unterschiede finden, wenn beides funktioniert ...? :-)
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

02-09-2010, 21:42
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.178
|
|
Zitat:
Zitat von wahsaga
Und warum willst du auf Teufel komm raus Unterschiede finden, wenn beides funktioniert ...? :-)
|
Ich frag mich nur, warum es dann zwei(!) Schreibweisen für ein die selbe Sache gibt. Außerdem muss man bei JavaScript ja immer auf eine Überraschung gefasst machen. Wie zum Beispiel das this in einer lokalen Funktion. Weist dann auf das window-Objekt hin und keine Sau weiß warum. Naja, ist halt JavaScript. *kopfschüttel*
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

02-09-2010, 22:53
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
|
|
Zitat:
Zitat von Kropff
Ich frag mich nur, warum es dann zwei(!) Schreibweisen für ein die selbe Sache gibt.
|
Es gibt Unterschiede zwischen diesen beiden Varianten. Die mit var erzeugt eine anonyme Funktion, die an eine Variable gebunden ist. Die mit function name () erzeugt keine anonyme Funktion. Den Unterschied kann man erkennen, wenn man mit der Caller-Eigenschaft rummacht.
Zitat:
Zitat von Kropff
Außerdem muss man bei JavaScript ja immer auf eine Überraschung gefasst machen. Wie zum Beispiel das this in einer lokalen Funktion.
|
Auch das ist gut dokumentiert und folgt Regeln die zwar anders als in PHP sind, denen aber dennoch eine nachvollziehbare Logik innewohnt.
ECMAScript Language Specification (HTML version)
ECMAScript Language Specification (HTML version)
https://developer.mozilla.org/en/Jav...s/Special/this
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

02-09-2010, 23:02
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
|

03-09-2010, 09:54
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.178
|
|
Zitat:
Zitat von AmicaNoctis
Es gibt Unterschiede zwischen diesen beiden Varianten. Die mit var erzeugt eine anonyme Funktion, die an eine Variable gebunden ist. Die mit function name () erzeugt keine anonyme Funktion. Den Unterschied kann man erkennen, wenn man mit der Caller-Eigenschaft rummacht.
|
Da bin ich ja erleichtert, dass es doch einen Unterschied gibt.
Zitat:
Zitat von AmicaNoctis
Auch das ist gut dokumentiert und folgt Regeln die zwar anders als in PHP sind, denen aber dennoch eine nachvollziehbare Logik innewohnt.
|
Naja, ist wohl Ansichtssache. Nur weil etwas spezifiziert wurde, heißt das noch lange nicht, dass es logisch oder sinnvoll ist. Ich denke da nur an die collapsing margins.
Peter
Zitat:
Zitat von AmicaNoctis
Erinnerung an mich selbst: Niemals, never ever anyway, Kommentare vor dem HTML-Element einfügen!!!
|
Siehste, ist sicher auch irgendwo spezifiziert und folgt einer bestimmten Logik. Aber dich treibt es in den Wahnsinn.
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|