Was macht '::' (doppelter Doppelpunkt) in Javascript für Ereignisse?

8

Ich habe diesen Code gesehen und kratze mich am Kopf, um zu entscheiden, wie es funktioniert.

%Vor%

doppelter Doppelpunkt? Dies ist von der Verwendung eines Philips-Sprachmikrofons von einer Webseite.

Irgendeine Idee, was dieser Doppelpunkt bedeutet? Es scheint mir ein Syntaxfehler zu sein, aber es funktioniert! (zumindest in IE).

    
sproketboy 19.04.2011, 10:53
quelle

6 Antworten

6

Ich konnte in einem gescannten Handbuch eine obskure Referenz finden Microsoft Office Infopath 2003 . Es scheint eine JScript -Syntax zu sein:

  

ein Doppelpunkt wird als Trennzeichen verwendet   zwischen der Skript-ID und dem Ereignis   Name

Ich schätze, das ist nicht Teil (oder nicht länger Teil) der ECMAScript-Implementierung des Internet Explorers, sondern gehört (oder gehörte) zur Implementierung von Microsoft Office.

    
Álvaro González 19.04.2011, 11:11
quelle
6

Dies ist eine Erweiterung der Javascript-Sprache, die von Microsoft implementiert wurde. Der Zweck besteht darin, einen Ereignishandler für ein COM-Objekt anzugeben, auf das auf der Seite verwiesen wird. SpeechMikeControl ist der global definierte Name des COM- (und / oder ActiveX-) Objekts:

  • entweder mit einem OBJECT oder einem anderen Element, das eine id Eigenschaft von SpeechMikeControl oder
  • hat
  • eine globale Variable SpeechMikeControl irgendwo zuvor im Javascript deklariert

SPMEventButton ist der Name des COM-Ereignisses, das vom Objekt " SpeechMikeControl " unter "who-knows-what-Umstände" ausgelöst wird.

Der Doppelpunkt ist eine Anweisung, um den Funktionskörper als Handler mit dem Ereignis des Steuerelements zu verbinden.

    
richard 25.08.2011 20:10
quelle
3

Ziemlich sicher, dass es ein Syntaxfehler ist

    
Mild Fuzz 19.04.2011 10:55
quelle
0

Ich bin mir ziemlich sicher, dass das keine gültige Javascript-Syntax ist.

Wenn es im IE funktioniert, aber nicht in anderen Browsern, könnte es sein, dass IE es als eine andere Skriptsprache behandelt (vielleicht VBScript? obwohl ich mich nicht erinnere, dass es auch einen Doppelpunktoperator hat? Nicht sicher, welche andere Sprache es ist) könnte aber sein.)

    
Spudley 19.04.2011 11:05
quelle
0

Die Frage darf kein Duplikat von Was bedeutet "::" ( doppelter Doppelpunkt) tun in Javascript? , aber die Antwort ist: es ist ein Syntaxfehler.

Im Folgenden:

%Vor%

Das Schlüsselwort function im globalen Kontext am Anfang eines Ausdrucks zeigt eine Funktionsdeklaration an. Nach muss ein Bezeichner sein, der der Funktionsname ist. Danach muss der Name ein öffnender Gruppierungsoperator sein '(', formale Parameterliste und schließender Gruppierungsoperator '). Also zwischen function und () kann nur eine einzige Kennung für erlaubte Zeichen sein (das ist kein reserviertes Wort oder zukünftiges reserviertes Wort, aber das ist kein Problem hier).

Das Zeichen ":" (Doppelpunkt) ist ein Interpunktionszeichen und kann nicht in einem Bezeichner erscheinen. Daher muss einen Syntaxfehler verursachen, wenn der Code als Javascript behandelt wird.

Vielleicht hat IE eine Erweiterung der Sprache, ich kenne ECMAScript nicht gut genug, um zu wissen, ob das zulässig ist, aber ich würde nicht erwarten, dass andere Implementierungen bricht

>     
RobG 19.04.2011 11:35
quelle
0

Wie in dieser Antwort von erwähnt wird Was macht '::' (doppelter Doppelpunkt) in Javascript?

>

:: ist ein ES2016-Operator, der eine Abkürzung für bind darstellt. Diese Antwort soll diejenigen unterstützen, die seit der ES2016-Spezifikation auf :: gestoßen sind, gilt jedoch nicht für den Kontext, in dem diese Frage gestellt wurde.

    
Dmase05 29.06.2016 04:06
quelle

Tags und Links