首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重构回调函数

重构回调函数
EN

Stack Overflow用户
提问于 2022-10-07 10:30:44
回答 1查看 25关注 0票数 1

我很难重构颜色开关的代码。颜色最终是未定义的。

如何在传递回调的同时,将颜色变量从主模块传递到模块?

main.js

代码语言:javascript
复制
import { changeColor } from "./changeColor.js"
import { showColor } from "./showColor.js"

let color = "green"

document.getElementById("button").addEventListener("click",() => { changeColor(showColor) })

changeColor.js

代码语言:javascript
复制
function changeColor(callback) {
    if (color === "green") {
        color = "red"
    }
    else {
        color = "green"
    }
    callback()
}

export { changeColor };

showColor.js

代码语言:javascript
复制
function showColor() {
    console.log(color);
}

export { showColor };
EN

回答 1

Stack Overflow用户

发布于 2022-10-07 10:34:05

color值作为参数发送到您定义为回调引用的函数,然后将参数添加到函数定义中:

代码语言:javascript
复制
let color = "green";

document.getElementById("button").addEventListener("click", () => {
  changeColor(showColor);
})

function changeColor(callback) {
  color = color === 'green' ? 'red' : 'green';
  callback(color)
}

function showColor(c) {
  console.log(c);
}
代码语言:javascript
复制
<button id="button">Toggle</button>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73985801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档