2011-10-30 8 views
7

Estoy usando un código existente y esta línea no la entiendo. Solo sé que el valor predeterminado se puede usar como parte de una declaración Swtich, pero no sé si hay algún otro uso para él. El código funciona Es parte de TurkIt que se utiliza para ejecutar programas a través de MTurk de Amazon.Palabra clave predeterminada de Javascript

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

Véase el default antes de la declaración xml namespace.

+0

Funciona ¿cómo? ¿Qué hace la segunda línea? Como se muestra, no debería funcionar. ¿Estás seguro de que no hay '_' entre' default', 'xml' y' namespace'? – ZenMaster

+0

la segunda línea también es un 'SyntaxError', si esto funciona en absoluto es porque se está transformando en javascript real que no se ejecuta como está. – Esailija

+0

@Esailija - No obtengo una sintaxis aquí en FF 7.0.1: http://jsfiddle.net/Ka833/ –

Respuesta

14

default xml namespace es una directiva ECMAScript for XML (E4X).

E4X es una extensión de ECMAScript que le permite tratar XML como un tipo primitivo (eso también es lo que sucede con la parte var q = <QuestionForm> ...). La directiva default xml namespace establece (como era de esperar) el espacio de nombres XML predeterminado para el mismo ámbito que la directiva.

Mozilla's SpiderMonkey (el motor utilizado por Firefox y otros navegadores Gecko) y Rhino son los únicos motores de JavaScript que conozco que admiten E4X, pero basado en ECMAScript ActionScript 3 also does. Supongo que Turk está diseñado para ejecutarse en Rhino.

+0

Sí, usa Rhino. Muchas gracias. – user994165

Cuestiones relacionadas