【问题标题】:Javascript default keywordJavascript 默认关键字
【发布时间】:2011-10-30 19:09:31
【问题描述】:

我正在使用一些现有的代码,这行我不明白。我只知道 default 可以用作 swtich 语句的一部分,但不知道它是否还有其他用途。该代码有效。它是 TurkIt 的一部分,用于通过 Amazon 的 MTurk 运行程序。

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

请参阅xml namespace 语句之前的default

【问题讨论】:

  • 如何工作?第二行是做什么的?如图所示 - 它不应该工作。你确定defaultxmlnamespace之间没有_吗?
  • 第二行也是SyntaxError,如果这行得通,那是因为它正在被转换为真正的javascript而不是按原样运行。
  • @Esailija - 在 FF 7.0.1 中没有得到语法:jsfiddle.net/Ka833
  • @JaredFarrish 我认为是 FF eval 驱动的控制台再次出现。它在 Chrome 控制台和独立的 HTML 中确实失败了。
  • @ZenMaster - 我得到一个invalid default XML namespace here,这意味着发生了一些事情,也许是特定于 Firefox 的?

标签: javascript mechanicalturk


【解决方案1】:

default xml namespace 是一个ECMAScript for XML (E4X) 指令。

E4X 是 ECMAScript 的一个扩展,它允许您将 XML 视为原始类型(var q = &lt;QuestionForm&gt; ... 部分也是如此)。 default xml namespace 指令设置(如您所料)与指令相同范围的默认 XML 命名空间。

Mozilla 的 SpiderMonkey(Firefox 和其他 Gecko 浏览器使用的引擎)和 Rhino 是我所知道的唯一支持 E4X 的 JavaScript 引擎,但基于 ECMAScript 的 ActionScript 3 also does。我假设 TurkIt 是为在 Rhino 上运行而设计的。

【讨论】:

  • 是的,它使用 Rhino。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-05
  • 2019-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多