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

时间:2018-05-28 12:10:01

标签: javascript html modular

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

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 到目前为止没有运气,有人可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

如果您有许多文件,那么好主意将使用Webpack,它可以帮助您使用AMD或CommonJS进行工作。

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