javascript - javascript中最合适的全局变量?

标签 javascript html

我有一个按下按钮时执行的函数。
我不希望用户连续执行该函数两次。所以我使用了 window 变量。
我做到了:

function a() {  
  if(window.infunction != undefined || window.infunction != null) {  
       return;  
  }  
  window.infunction = 'true';    
  //do stuff  
}  

在其他地方(按下另一个按钮)我重置:window.infunction = undefined

这是使用全局变量的正确方法(至少满足我的需要)吗?

最佳答案

函数是对象。它们可以像任何其他对象一样具有属性:

function a(){
    if (a.executed) return;
    a.executed = true;

    //do stuff
}

正如 @Ian 在他的评论中提到的,您可以轻松地使该函数可重用。这种方法既有优点,也有缺点。

正如@Dave所说,它可以通过闭包来实现:

var a = (function (){
    var executed = false;

    return function (){
        if (executed) return;
        executed = true;

        //do stuff
    }
})(); 

关于javascript - javascript中最合适的全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16905581/

相关文章:

javascript - Vue - 从索引中提取多个组件

javascript - 我无法使用 Intl.DateTimeFormat API 更新时间

JavaScript onChange 处理程序错误

javascript - 在同一页面上的 div anchor 链接在 Safari 中不起作用

html - 为什么 GMail 使用引用可打印编码打破带有缩小标记/HTML 的电子邮件的内联 (CSS) 样式?

html - 创建具有水平和垂直表单字段的 Bootstrap 表单

javascript - 使用 Jquery 获取输入值数组

html - 在css中将div剪辑成不规则形状的方法

javascript - Bootstrap4 对齐 self 基线不起作用

html - CSS 固定位置干扰自动宽度