Perioden in der JavaScript Funktionsdefinition (Funktion window.onload () {}) [duplizieren]

8

Ich habe kürzlich (älteren) JavaScript-Code gesehen, der aussieht:

%Vor%

Das sieht für mich nicht wie ein gültiges Javascript aus, da Sie keinen Punkt in einem Bezeichner haben können, aber es scheint in IE8 zu funktionieren. Ich nehme an, es ist das Äquivalent von:

%Vor%

Ich habe den gleichen Code in Chrome und IE9 ausprobiert und beide heben Syntaxausnahmen auf, also bin ich richtig in der Annahme, dass dieses "Feature" von IE8 eine nicht standardmäßige Funktionsdefinition ist, die ersetzt werden sollte? Der fragliche Code wird nur an IE-Browser gesendet, also ist das wahrscheinlich der Grund, warum ich dieses Problem noch nie zuvor gesehen habe.

    
nemec 08.10.2012, 15:20
quelle

2 Antworten

2

Bei Javascript in neueren Browsern können Sie sich normalerweise auf ECMAScript beziehen und dies ist in ECMAScript nicht erlaubt:

ECMAScript-Spezifikation zur Funktionsdefinition :

  

Die Produktion FunctionDeclaration: function Identifier (   FormalParameterListopt) {Funktionskörper}   [...]

     

Erstellen Sie eine Eigenschaft des aktuellen Variablenobjekts (wie in   10.1.3) mit dem Namen Identifier

SO auf gültige Namen (nur für den Fall, dass jemand "Fenster" denken würde .onload "ist der Name der Funktion, also window.window.onload )

    
Denys Séguret 08.10.2012, 15:25
quelle
0

Sie können neue Funktionen mit dieser Syntax definieren:

%Vor%

Die Funktion window.onload wird vom Browser definiert und kann null sein. Der Zeitraum bedeutet, dass der Wert onload ein Mitglied des Objekts window ist. Die folgende Syntax übernimmt eine Funktion und weist sie dem Wert des Elements onload zu:

%Vor%

Vergessen Sie nicht das abschließende Semikolon, da dies eine Zuweisungsanweisung ist.

    
Zach Rattner 08.10.2012 15:35
quelle

Tags und Links