2011-10-30 28 views
7

Sto usando un codice esistente e c'è questa riga che non capisco. So solo che il default può essere usato come parte di una dichiarazione swtich, ma non so se c'è un altro uso per questo. Il codice funziona. Fa parte di TurkIt che viene utilizzato per eseguire programmi attraverso MTurk di Amazon.Parola chiave predefinita Javascript

function getQuestion(numA, numB) { 
    default xml namespace = "http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2005-10-01/QuestionForm.xsd"; 
    var q = <QuestionForm> ... 

Vedi l'default prima dell'istruzione xml namespace.

+0

Funziona come? Cosa fa la seconda linea? Come viene mostrato, non dovrebbe funzionare. Sei sicuro che non ci sia '_' tra' default', 'xml' e' namespace'? – ZenMaster

+0

anche la seconda riga è un 'SyntaxError', se questo funziona è perché viene trasformato in vero javascript senza essere eseguito così com'è. – Esailija

+0

@Esailija - Non si ottiene qui una sintassi in FF 7.0.1: http://jsfiddle.net/Ka833/ –

risposta

14

default xml namespace è una direttiva ECMAScript for XML (E4X).

E4X è un'estensione di ECMAScript che consente di trattare l'XML come un tipo primitivo (che è anche ciò che sta succedendo con la parte var q = <QuestionForm> ...). La direttiva default xml namespace imposta (come ci si potrebbe aspettare) lo spazio dei nomi XML predefinito per lo stesso ambito della direttiva.

Mozilla's SpiderMonkey (il motore utilizzato da Firefox e altri browser Gecko) e Rhino sono gli unici motori JavaScript che conosco che supportano E4X, ma lo ActionScript 3 also does basato su ECMAScript. Presumo che TurkIt sia progettato per funzionare su Rhino.

+0

Sì, utilizza Rhino. Molte grazie. – user994165

Problemi correlati