2011-10-30 96 views
7

我正在使用一些現有的代碼,並有這條線我不明白。我只知道默認可以用作swtich語句的一部分,但不知道是否有其他用途。代碼起作用。它是TurkIt的一部分,用於通過亞馬遜的MTurk運行程序。Javascript的默認關鍵字

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

請參閱xml namespace聲明前的default

+0

作品如何?第二行是幹什麼的?正如所示 - 它不應該工作。你確定'default','xml'和'namespace'之間沒有'_'嗎? – ZenMaster

+0

第二行也是一個'SyntaxError',如果這一切都起作用,那是因爲它正在被轉換爲真正的javascript而不是按原樣運行。 – Esailija

+0

@Esailija - 在FF 7.0.1中沒有得到一個語法:http://jsfiddle.net/Ka833/ –

回答

14

default xml namespaceECMAScript for XML (E4X)指令。

E4X是ECMAScript的擴展,它允許您像原始類型那樣對待XML(這也是var q = <QuestionForm> ...部分發生的情況)。 default xml namespace指令設置(如您所期望的)與指令相同範圍的默認XML名稱空間。

Mozilla的SpiderMonkey(Firefox和其他Gecko瀏覽器使用的引擎)和Rhino是我所知道的支持E4X的唯一JavaScript引擎,但基於ECMAScript的ActionScript 3 also does。我認爲TurkIt是爲了在犀牛上運行而設計的。

+0

是的,它使用犀牛。非常感謝。 – user994165