#javascript #mechanicalturk
#javascript #mechanicalturk
Вопрос:
Я использую некоторый существующий код, и есть эта строка, которую я не понимаю. Я знаю только, что default можно использовать как часть инструкции swtich, но не знал, есть ли для этого какое-то другое применение. Код работает. Это часть TurkIt, которая используется для запуска программ через MTurk от Amazon.
function getQuestion(numA, numB) {
default xml namespace = "http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2005-10-01/QuestionForm.xsd";
var q = <QuestionForm> ...
Смотрите default
перед xml namespace
инструкцией.
Комментарии:
1. Как это работает? Что делает вторая строка? Как показано — это не должно работать. Вы уверены, что
_
между ними нетdefault
xml
иnamespace
?2. вторая строка
SyntaxError
также является a, если это вообще работает, это потому, что она преобразуется в реальный javascript, который не запускается как есть.3. @Esailija — Здесь нет синтаксиса в FF 7.0.1: jsfiddle.net/Ka833
4. @JaredFarrish Я думаю, что это консоль с поддержкой FF eval снова барахлит. Он терпит неудачу в консоли Chrome и в отдельном HTML.
5.@ZenMaster — Я получаю
invalid default XML namespace
здесь, что подразумевает, что что-то происходит, может быть, специфичное для Firefox?
Ответ №1:
default xml namespace
является директивой ECMAScript для XML (E4X).
E4X — это расширение ECMAScript, которое позволяет обрабатывать XML как примитивный тип (это также то, что происходит с var q = <QuestionForm> ...
частью). default xml namespace
Директива устанавливает (как и следовало ожидать) пространство имен XML по умолчанию для той же области, что и директива.
Mozilla SpiderMonkey (движок, используемый Firefox и другими браузерами Gecko) и Rhino — единственные известные мне движки JavaScript, которые поддерживают E4X, но ActionScript 3 на основе ECMAScript также поддерживает. Я предполагаю, что TurkIt предназначен для работы на Rhino.
Комментарии:
1. Да, он использует Rhino. Большое спасибо.