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.
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>
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>
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>
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!