JavaScript;如何使函数全局可访问?

标签 javascript global-variables

  1. 我正在尝试从这个秒表示例中学习。我希望能够通过单击此页面上未定义的另一个 html 元素来启动秒表。

  2. 如何在其他地方使用“开始”功能(例如页面重新加载等)?

    var Stopwatch = function(elem, options) {
    
      var timer       = createTimer(),
          startButton = createButton("start", start),
          offset,
          clock,
          interval;
    
      // append elements     
      elem.appendChild(startButton);
    
      reset();
    
      // private functions
      function createTimer() {
        return document.createElement("span");
      }
    
      function createButton(action, handler) {
        var a = document.createElement("a");
        a.href = "#" + action;
        a.innerHTML = action;
        a.addEventListener("click", function(event) {
          handler();
          event.preventDefault();
        });
        return a;
      }
    
      function start() {
        if (!interval) {
          offset   = Date.now();
          interval = setInterval(update, options.delay);
        }
      }         
    
      // public API
      this.start  = start;
    };
    
    var d = document.getElementById("d-timer");
    dTimer = new Stopwatch(d, {delay: 1000});
    dTimer.start();
    

问题1:如何在其他地方调用启动函数?全局?

最佳答案

如果“未在此页面上定义”是指 HTML 文档中的浏览器页面,那么这是不可能的。一旦您切换页面(甚至重新加载页面),代码就会在不同的上下文中运行。

假设这就是您想要的,您可以通过不实际离开页面,而是加载另一个页面并替换当前页面内容来解决此问题。

如果您不离开页面,您的 dTimer 对象应该可以全局访问。

关于JavaScript;如何使函数全局可访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27789050/

相关文章:

javascript - 无法在 Heroku 上部署 web-starter Nodejs 应用程序

javascript - 在 ui5 上的现有表中添加新列

c++ - eclipse /海湾合作委员会 : Undefined Reference to Extern Variable

multithreading - 如何正确使用线程专有数据

javascript - 在 JavaScript 中使用同步可观察对象

javascript - 按特定顺序拖动音频文件 html5

javascript - 使可折叠可排序 Accordion 排序为折叠形状

python - 为什么不用global关键字就不会报错

c - 动态分配的函数中的局部指针变量会发生什么?

javascript - 通过 iframe 脚本加载器避免全局污染?