Artikel ini menunjukkan membina kalkulator fizik baris arahan menggunakan corak modul IIFE (Immediately Invoked Function Expression) JavaScript. Ia memecahkan penciptaan kepada tiga fail JavaScript modular dan fail package.json
untuk mengurus projek.
Kefungsian teras dibahagikan kepada tiga modul:
iifePhysicsCalculations.js
: Modul ini, dilaksanakan sebagai IIFE, merangkum fungsi pengiraan fizik. Ia mentakrifkan pemalar seperti graviti dan kelajuan cahaya, mengekalkannya secara peribadi dalam modul. Fungsi untuk halaju, pecutan, tenaga keupayaan, momentum, tenaga, daya, dan tenaga kinetik didedahkan sebagai kaedah objek yang dikembalikan. Kaedah pengambil untuk pemalar graviti dan kelajuan cahaya juga disertakan.<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
: Modul ini mengeksport pelbagai objek, setiap satu mewakili persamaan fizik. Setiap objek mengandungi ID persamaan, formula pengiraan, penerangan input dan unit. Ini mengasingkan definisi persamaan dengan jelas daripada logik pengiraan.<code class="language-javascript">//PhysicsEquations.js export const physicsEquations = [ // ... (Equation objects as in the original code) ];</code>
PhysicsCalculationsApp.js
: Ini ialah fail aplikasi utama. Ia mengimport dua modul lain, menggunakan node:readline
untuk interaksi baris arahan dan mengatur antara muka pengguna dan proses pengiraan. Ia membentangkan menu persamaan fizik, menggesa pengguna untuk input, melakukan pengiraan menggunakan fungsi daripada iifePhysicsCalculations.js
dan memaparkan hasilnya.<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>
Fail package.json
dengan "type": "module"
diperlukan untuk mendayakan sokongan modul ES dalam Node.js. Aplikasi kemudian menggunakan gelung while
dan berjanji untuk mengendalikan input dan output pengguna dengan cara yang bersih dan cekap. Pengendalian ralat (cth., untuk input bukan angka) boleh ditambah untuk keteguhan.
Atas ialah kandungan terperinci Membina Permohonan Pengiraan Fizik Talian Perintah dengan Corak Modul Iife. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!