Maison > interface Web > js tutoriel > Construire une application de calcul de la physique de la ligne de commande avec un motif de module iife

Construire une application de calcul de la physique de la ligne de commande avec un motif de module iife

Patricia Arquette
Libérer: 2025-01-27 10:29:09
original
928 Les gens l'ont consulté

Cet article montre la création d'une calculatrice physique en ligne de commande à l'aide du modèle de module IIFE (Immediately Invoked Function Expression) de JavaScript. Il décompose la création en trois fichiers JavaScript modulaires et un package.json fichier de gestion du projet.

Building a Command Line Physics Calculations Application with an IIFE Module Pattern

La fonctionnalité de base est divisée en trois modules :

  • iifePhysicsCalculations.js : Ce module, implémenté sous forme d'IIFE, encapsule les fonctions de calcul physique. Il définit des constantes comme la gravité et la vitesse de la lumière, les gardant privées au sein du module. Les fonctions de vitesse, d'accélération, d'énergie potentielle, d'élan, d'énergie, de force et d'énergie cinétique sont exposées en tant que méthodes de l'objet renvoyé. Des méthodes Getter pour la constante de gravité et la vitesse de la lumière sont également incluses.
<code class="language-javascript">//iifePhysicsCalculations.js
export const physicsCalculations = (
    function () {
        // Private constants
        const g = 9.80665;
        const c = 299792458;

        // Public methods
        const velocity = (distance, time) => distance / time;
        const acceleration = (speed, time) => speed / time;
        const potentialEnergy = (mass, height) => mass * g * height;
        const momentum = (mass, speed) => mass * speed;
        const energy = (mass) => mass * (c ** 2);
        const force = (mass, acc) => mass * acc;
        const kineticEnergy = (mass, speed) => 0.5 * mass * (speed ** 2);

        return {
            velocity,
            acceleration,
            potentialEnergy,
            momentum,
            energy,
            force,
            kineticEnergy,
            getSpeedOfLight: () => c,
            getGravityConstant: () => g
        };
    }
)();</code>
Copier après la connexion
  • PhysicsEquations.js : Ce module exporte un tableau d'objets, chacun représentant une équation physique. Chaque objet contient l'ID de l'équation, la formule de calcul, les descriptions d'entrée et les unités. Cela sépare clairement les définitions d'équation de la logique de calcul.
<code class="language-javascript">//PhysicsEquations.js
export const physicsEquations = [
    // ... (Equation objects as in the original code)
];</code>
Copier après la connexion
  • PhysicsCalculationsApp.js : Il s'agit du dossier de candidature principal. Il importe les deux autres modules, utilise node:readline pour l'interaction en ligne de commande et orchestre l'interface utilisateur et le processus de calcul. Il présente un menu d'équations physiques, invite l'utilisateur à saisir, effectue les calculs à l'aide des fonctions de iifePhysicsCalculations.js et affiche les résultats.
<code class="language-javascript">//PhysicsCalculationsApp.js
import { physicsCalculations } from "./iifePhysicsCalculations.js";
import { physicsEquations } from "./PhysicsEquations.js";
import readline from 'node:readline';

// ... (rest of the code as in the original)</code>
Copier après la connexion

Un fichier package.json avec "type": "module" est nécessaire pour activer la prise en charge des modules ES dans Node.js. L'application utilise ensuite une boucle while et promet de gérer les entrées et sorties des utilisateurs de manière propre et efficace. La gestion des erreurs (par exemple, pour les entrées non numériques) pourrait être ajoutée pour plus de robustesse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal