如何编写模块化 JavaScript 代码(库)

How to write modular JavaScript code (library)

我一直在研究这个小片段:

var a;
var b;
var c;

function generateResult() {
    // Custom variables
    var a = parseInt(document.getElementById("firstNumber").value);
    var b = document.getElementById("operator").value;
    var c = parseInt(document.getElementById("secondNumber").value);

    console.log(a);
    console.log(b);
    console.log(c);

    var calc = function(a, b, c) {
        var result;

        if (b == "+") {
            console.log("Now in sum");
            result = a + c;
            return result;
        }

        else if (b == "-") {
            console.log("Now in sub");
            result = a - c;
            return result;
        }

        else if (b == "/") {
            console.log("Now in div");
            result = a / c;
            return result;
        }

        else if (b == "*") {
            console.log("Now in tim");
            result = a * c;
            return result;
        }
    }

    document.getElementById("result").innerHTML = (calc(a, b, c));
}
<!DOCTYPE html>
<html lang="en-US">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Test</title>
</head>

<body>

<form>
    <h1>Calculator (basic)</h1><br><br>

    First input:<br>
    <input type="number" id="firstNumber"><br><br>

    <select id="operator">
        <option id="sum" value="+">+</option>
        <option id="sub" value="-">-</option>
        <option id="div" value="/">/</option>
        <option id="tim" value="*">*</option>
    </select><br><br>

    Second input:<br>
    <input type="number" id="secondNumber"><br><br>
</form>

<button onclick="generateResult()">=</button><br><br>

<h3 id="result"></h3>

</body>

<script src="script.js" defer></script>

</html>

我希望这段代码是模块化的,这样每个人都可以实现。像这样:http://semester4.nl/bounce/demo/

我一直在努力学习一些基础知识 javascript。有人向我建议我应该尝试编写我的代码模块化(即使是像这样简单的东西)。我用过这个教程:https://www.youtube.com/watch?v=pOfwp6VlnlM 到目前为止运气不好,有人可以帮我吗?

谢谢!

您可以将此代码包装在 IIFE 中。

(() => {
    // your code
})();

如果你有很多文件,最好使用 Webpack,它可以帮助你工作,使用 AMD 或 CommonJS。

其他选项是使用 ES Modules,在没有 Webpack 的情况下应该可以工作。