javascript - 向 IIFE 添加第三个函数

标签 javascript

我想向此代码添加第三个函数:

var fn3 = (function() {
  var first = true;
  return function() {
    first ? fn1() : fn2();
    first = !first;
  }
})();

function fn1() {
console.log(1);
};
function fn2() {
console.log(2);
};

----

<button onClick="fn3()">click</button>

我尝试添加 fn3() 并将 var 更改为其他内容,但不幸的是,它不起作用。有人可以帮我吗?谢谢:)

最佳答案

您可以将函数存储在数组中,并使用索引来获取下一个函数。

function fn1() {
    console.log(1);
}

function fn2() {
    console.log(2);
}

function fn3() {
    console.log(3);
}

var next = (function(array) {
    var index = -1;
    return function() {
        return array[index = (index + 1) % 3]();
    };
})([fn1, fn2, fn3]);
<button onClick="next()">click</button>

关于javascript - 向 IIFE 添加第三个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60619651/

相关文章:

javascript - Rails 3 将变量从 link_to 传递到 javascript

javascript - 如果标签的宽度超过其 parent 的宽度,如何测量标签的宽度

javascript - UI-Grid 隐藏列后自动调整列宽

javascript - jQuery从左到右动画定位问题

javascript - Bootstrap 模态背景改变其透明度

javascript - 不使用服务器保存和加载 mxGraph 文件

javascript - WordPress,表单缓存和显示隐藏div

javascript - 单击复选框显示/隐藏两个表

javascript - 从文档就绪外部调用时未定义函数

javascript - useEffect 持续触发 GET 请求