如何在Spidermonkey中指定脚本执行范围?

时间:2019-03-31 14:52:31

标签: javascript c++ spidermonkey vxml

我正在尝试实现(VoiceXML解释器)。对于不熟悉VoiceXML的用户,该应用程序允许在多个嵌套范围之一中运行JS脚本,这些范围表示为对象。

作用域是会话,应用程序,文档和对话框,按从外到内的顺序排列。

现在,如果脚本在文档范围内运行,它可以从不限定范围的外部范围访问变量和函数,并且所有变量和 它定义的功能被创建为文档作用域的子对象。

离开范围时,将删除其所有子对象。

我设法创建了全局对象,并使用标准的javascript函数填充了该对象

我想实现以下目标。

 <?xml version="1.0" encoding="UTF-8"?> 
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.w3.org/2001/vxml 
   http://www.w3.org/TR/voicexml20/vxml.xsd"> 
  <form> 
    <script> 
      var now = new Date(); <!-- this has a dialog scope-->
    </script>
    <var name="seconds" expr="now.getSeconds()"/> <!-- this has a dialog scope-->
    <block> 
      <var name="now" expr="new Date()"/> <!-- this has an anonymous scope -->
      <script> 
        var current = now.getSeconds();       <!-- "now" in the anonymous scope -->
        var approx = dialog.now.getSeconds(); <!-- "now" in the dialog scope -->
      </script> 
    </block> 
  </form> 
</vxml>

0 个答案:

没有答案