cari
Rumahhujung hadapan webtutorial jsMemahami kemahiran modularity_javascript javascript

Pemodularan ialah amalan terbaik pengaturcaraan biasa. Pemodulatan atur cara memudahkan kita menggunakan kod orang lain dan memuatkan apa sahaja modul yang kita mahu untuk apa jua fungsi yang kita mahu, dengan itu meningkatkan kecekapan penggunaan kod dan meningkatkan kelajuan pembangunan.

Modul adalah seperti blok binaan, dengannya, kita boleh membina program dengan pelbagai fungsi dan gaya. Apakah ciri-ciri blok binaan? Kecil dan ringkas. Begitu juga, modul dalam program kami juga harus melakukan ini, memastikan bahawa fungsi yang anda cipta hanya menyelesaikan satu kerja pada satu masa, supaya pembangun lain boleh menyahpepijat dan mengubah suai kod anda tanpa perlu menyemak imbas semua kod untuk memikirkan setiap langkah. Apakah fungsi yang dilakukan oleh blok kod? Hanya dengan menjadi kecil dan ringkas seperti ini boleh mencapai fungsi universalnya.

1. Kaedah modularisasi JavaScript
1. Fungsi enkapsulasi
Skop JavaScript adalah berdasarkan fungsi, jadi kita boleh menggunakan fungsi sebagai modul.

function fn1(){
  //code
}

function fn2(){
  //code
}

Kelemahan: Pembolehubah global "Mencemarkan", tiada jaminan bahawa nama pembolehubah tidak akan bercanggah dengan modul lain

2

var myModule1 = {
  fn1: function(){
    //code
  },
  fn2: function(){
    //code
  }
}
Kelemahan: Semua ahli modul akan didedahkan, dan keadaan dalaman boleh ditimpa oleh bahagian luar

Segera laksanakan fungsi - disyorkan

var myModule = (function(){
  function fn1(){
    //code
  },
  function fn2(){
    //code
  },
  return {
    fn1: fn1,
    fn2: fn2
  };
})();

2. Kecil dan ringkas Mengenai kecil dan mudah, mari kita lihat contoh Sebagai contoh, kita kini ingin menulis fungsi yang mencipta pautan baharu dan menambah kelas untuk hiperpautan jenis "mailto". Anda boleh melakukan ini:

function addLink(text, url, parentElement) {
  var newLink = document.createElement('a');//创建a标签
  newLink.setAttribute('href', url);//为a标签设置href属性
  newLink.appendChild(document.createTextNode(text));//为a标签添加文本
  if(url.indexOf("mailto:")==-1){
    newLink.className = 'mail';
  }
  parentElement.appendChild(newLink);//将a标签添加到页面
}
Menulis dengan cara ini mungkin berfungsi, tetapi anda mungkin mendapati bahawa anda tidak dibenarkan menambah fungsi lain, jadi fungsi ini tidak berkenaan. Oleh itu, fungsi yang lebih spesifik, lebih sukar untuk menerapkannya pada situasi yang berbeza.

Cara fungsi ditulis di sini tidak memenuhi keperluan modulariti - satu fungsi hanya melakukan satu perkara. Mari sesuaikan fungsi:

function createLink(text,url) {
  var newLink = document.createElement('a');
  newLink.setAttribute('href', url);
  newLink.appendChild(document.createTextNode(text));
  return newLink;
}
Fungsi createLink di sini hanya melakukan satu perkara - buat dan kembalikan teg untuk ditambahkan pada halaman (kecil dan mudah), supaya kita boleh memanggil fungsi sedemikian apabila kita perlu membuat hiperpautan.

3. CommonJS Dalam persekitaran pelayar, kekurangan modul bukanlah masalah besar Lagipun, kerumitan program web adalah terhad tetapi di sisi pelayan, mesti ada modul untuk berinteraksi dengan sistem pengendalian dan aplikasi lain, jika tidak, pengaturcaraan tidak akan mungkin sama sekali. Walaupun JavaScript telah dibangunkan di web selama bertahun-tahun, spesifikasi modular popular pertama dibawa oleh aplikasi JavaScript sebelah pelayan Spesifikasi CommonJS dibawa ke hadapan oleh NodeJS, yang menandakan kemasukan rasmi pengaturcaraan modular JavaScript di atas pentas.
Sistem modul node.js dilaksanakan mengikut spesifikasi CommonJS. Dalam CommonJS, terdapat kaedah global require() untuk memuatkan modul.
Muatkan modul:

var math = require('math');
Modul panggilan:

math.add(2,3)
Spesifikasi CommonJS tidak boleh digunakan pada persekitaran penyemak imbas kerana ia mempunyai had utama Dalam contoh di atas, baris kedua math.add(2, 3) mesti dijalankan selepas math.js dimuatkan. dan Semua modul diletakkan di bahagian pelayan, jadi ia mungkin mengambil masa yang lama bergantung pada kelajuan rangkaian.

Spesifikasi CommonJS terpakai pada bahagian pelayan, kerana untuk bahagian pelayan, semua modul disimpan dalam cakera keras tempatan dan boleh dimuatkan secara serentak. Masa menunggu ialah masa membaca cakera keras

4. Bagaimanakah modul harus ditakrifkan dan dimuatkan?
AMD
Definisi Modul Tak Segerak takrif modul tak segerak, wakil utama: require.js
Tujuan:
(1) Laksanakan pemuatan tak segerak bagi fail js untuk mengelakkan halaman web kehilangan respons; (2) Mengurus kebergantungan antara modul untuk memudahkan penulisan dan penyelenggaraan kod.

1. Tentukan modul

define(["./cart", "./inventory"], function(cart, inventory) {
  //通过[]引入依赖
  return {
    color: "blue",
    size: "large",
    addToCart: function() {
      inventory.decrement(this);
      cart.add(this);
    }
  }
}
);
2. Muatkan modul

require( ["some/module", "my/module", "a.js", "b.js"],
function(someModule,  myModule) {
  //This function will be called when all the dependencies
  //listed above are loaded. Note that this function could
  //be called before the page is loaded.
  //This callback is optional.
}
 );

CMD
Definisi Modul Biasa Takrif modul biasa, spesifikasi CMD dibangunkan di dalam negara. Wakil utama: sea.js
1. Tentukan modul

define(function(require, exports, module) {
 // 通过 require 引入依赖
 var $ = require('jquery');
 var Spinning = require('./spinning');
 // 通过 exports 对外提供接口
 exports.doSomething = ...
 // 或者通过 module.exports 提供整个接口
 module.exports = ...
});
2. Muatkan modul

seajs.use("../static/hello/src/main")
Perbezaan:
Untuk modul bergantung, AMD dilaksanakan lebih awal dan CMD dilaksanakan ditangguhkan. Walau bagaimanapun, bermula dari RequireJS 2.0, ia juga telah diubah untuk dapat menangguhkan pelaksanaan (kaedah pemprosesan adalah berbeza bergantung pada kaedah penulisan). CMD mengesyorkan semalas mungkin.

CMD menyokong pergantungan berdekatan, AMD menyokong pergantungan di hadapan.

Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu kajian semua orang.

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
JavaScript in Action: Contoh dan projek dunia nyataJavaScript in Action: Contoh dan projek dunia nyataApr 19, 2025 am 12:13 AM

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

JavaScript dan Web: Fungsi teras dan kes penggunaanJavaScript dan Web: Fungsi teras dan kes penggunaanApr 18, 2025 am 12:19 AM

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

Memahami Enjin JavaScript: Butiran PelaksanaanMemahami Enjin JavaScript: Butiran PelaksanaanApr 17, 2025 am 12:05 AM

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python vs JavaScript: Keluk Pembelajaran dan Kemudahan PenggunaanPython vs JavaScript: Keluk Pembelajaran dan Kemudahan PenggunaanApr 16, 2025 am 12:12 AM

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Python vs JavaScript: Komuniti, Perpustakaan, dan SumberPython vs JavaScript: Komuniti, Perpustakaan, dan SumberApr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Dari C/C ke JavaScript: Bagaimana semuanya berfungsiDari C/C ke JavaScript: Bagaimana semuanya berfungsiApr 14, 2025 am 12:05 AM

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Enjin JavaScript: Membandingkan PelaksanaanEnjin JavaScript: Membandingkan PelaksanaanApr 13, 2025 am 12:05 AM

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Beyond the Browser: JavaScript di dunia nyataBeyond the Browser: JavaScript di dunia nyataApr 12, 2025 am 12:06 AM

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)