cari

es6 mempunyai mod kilang; mod kilang merangkumkan logik ke dalam fungsi Dalam es6, anda boleh mencipta objek tanpa menggunakan konstruktor, sebaliknya, gunakan kelas dengan kata kunci statik untuk merangkumkan kilang ringkas ke dalam kaedah statik kelas Pengguna , sintaksnya ialah "class User{constructor}static static method(){}".

Adakah es6 mempunyai mod kilang?

Persekitaran pengendalian tutorial ini: sistem Windows 10, ECMAScript versi 6.0, komputer Dell G3.

Adakah es6 mempunyai mod kilang?

ES6 memberikan kami sintaks baharu kelas Walaupun kelas pada dasarnya adalah gula sintaks, ia tidak mengubah bahawa JavaScript ialah bahasa yang menggunakan warisan prototaip. Ia benar-benar menjadikan proses penciptaan dan pewarisan objek lebih jelas dan mudah dibaca. Mari tulis semula contoh di atas menggunakan sintaks baharu ES6.

ES6 menulis semula corak kilang ringkas

Apabila menulis semula corak kilang ringkas menggunakan ES6, kami tidak lagi menggunakan pembina untuk mencipta objek, tetapi menggunakan sintaks kelas baharu, Dan gunakan kata kunci statik untuk merangkum kilang mudah ke dalam kaedah statik kelas Pengguna:

//User类
class User {
  //构造器
  constructor(opt) {
    this.name = opt.name;
    this.viewPage = opt.viewPage;
  }
  //静态方法
  static getInstance(role) {
    switch (role) {
      case 'superAdmin':
      return new User({ name: '超级管理员', viewPage: ['首页', '通讯录', '发现页', '应用数据', '权限管理'] });
        break;
      case 'admin':
        return new User({ name: '管理员', viewPage: ['首页', '通讯录', '发现页', '应用数据'] });
        break;
      case 'user':
        return new User({ name: '普通用户', viewPage: ['首页', '通讯录', '发现页'] });
        break;
      default:
        throw new Error('参数错误, 可选参数:superAdmin、admin、user')
    }
  }
}

//调用
let superAdmin = User.getInstance('superAdmin');
let admin = User.getInstance('admin');
let normalUser = User.getInstance('user');

Mod kilang ialah mod pembangunan yang paling biasa Operasi baharu dikapsulkan secara berasingan dianggap mod Kilang. Cipta objek tanpa mendedahkan logik kod dan tulis logik ke dalam fungsi. Fungsi ini ialah corak kilang. Kelebihan: kesederhanaan. Kelemahannya ialah setiap kali pembina ditambah, logik kod dalam fungsi mesti diubah suai.

Corak kilang ialah salah satu corak reka bentuk yang paling biasa digunakan untuk mencipta objek. Kami tidak mendedahkan logik khusus untuk mencipta objek, tetapi merangkum logik dalam fungsi, maka fungsi ini boleh dianggap sebagai kilang. Corak kilang boleh dibahagikan kepada kilang mudah, kaedah kilang dan kilang abstrak mengikut tahap abstraksi yang berbeza.

Jika anda hanya didedahkan kepada bahasa JavaScript, konsep abstrak mungkin agak kabur, kerana JavaScript sentiasa menganggap abstrak sebagai perkataan simpanan dan tidak melaksanakannya. Jika anda tidak memahami konsep abstrak dengan baik, sukar untuk memahami persamaan dan perbezaan ketiga-tiga kaedah dalam corak kilang. Oleh itu, mari kita huraikan secara ringkas konsep abstraksi dan kilang dengan senario.

Mod kilang ringkas juga dipanggil mod kilang statik Objek kilang menentukan untuk mencipta tika kelas objek produk tertentu. Terutamanya digunakan untuk mencipta objek daripada jenis yang sama.

Dalam projek sebenar, kami selalunya perlu memaparkan halaman yang berbeza berdasarkan kebenaran pengguna Sesetengah halaman yang dimiliki oleh pengguna dengan kebenaran peringkat tinggi tidak boleh dilihat oleh pengguna yang mempunyai kebenaran peringkat rendah. Jadi kita boleh menyimpan halaman yang pengguna boleh lihat dalam pembina pengguna dengan tahap kebenaran yang berbeza. Buat pengguna segera berdasarkan kebenaran.

Kodnya adalah seperti berikut:

class SuperAdmin{
  constructor(){
    this.name = "超级管理员";
    this.viewPage = ['首页', '通讯录', '发现页', '应用数据', '权限管理'];
  }
}
class Admin{
  constructor(){
    this.name = "管理员";
    this.viewPage = ['首页', '通讯录', '发现页', '应用数据', '权限管理'];
  }
}
class NormalUser{
  constructor(){
    this.name = "普通用户";
    this.viewPage = ['首页', '通讯录', '发现页', '应用数据', '权限管理'];
  }
}
//工厂方法类
class UserFactory {
  getFactory(role){
   switch (role) {
     case 'superAdmin':
       return new SuperAdmin();
       break;
     case 'admin':
       return new Admin();
       break;
     case 'user':
       return new NormalUser();
       break;
     default:
       throw new Error('参数错误, 可选参数:superAdmin、admin、user');
   }
  }
 }
 
//调用
let uesr =new UserFactory();
uesr.getFactory('superAdmin');
uesr.getFactory('admin');
uesr.getFactory('user');

Kelebihan kilang yang ringkas ialah anda hanya memerlukan satu parameter yang betul untuk mendapatkan objek yang anda perlukan tanpa mengetahui butiran khusus penciptaannya. . Walau bagaimanapun, fungsi tersebut mengandungi logik penciptaan (pembina) dan kod logik penghakiman bagi semua objek Setiap kali pembina baharu ditambah, kod logik penghakiman perlu diubah suai.

Apabila objek kita bukan 3 di atas tetapi 30 atau lebih, fungsi ini akan menjadi fungsi super yang besar dan sukar untuk dikekalkan.

Oleh itu, kilang ringkas hanya boleh digunakan apabila bilangan objek yang dicipta adalah kecil dan logik penciptaan objek tidak kompleks.

[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web]

Atas ialah kandungan terperinci Adakah es6 mempunyai mod kilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Sifat mesra seo React: Meningkatkan penglihatan enjin carianSifat mesra seo React: Meningkatkan penglihatan enjin carianApr 26, 2025 am 12:27 AM

Ya, reactapplicationscanbeseo-friendlywithpropstrategies.1) useserver-siderendering (ssr) withtoolslikenext.jstogeneratenerlhtmlforindexing.2) pelaksanaan stationsitationeration (ssg) forcontent-heavysitestopre-renderpageStoStoStoStoStoStoStoStoStoStoStoStoStoStoStoStoStoStoStoStoStoStoStetBuild

Kesesakan prestasi React: Mengenal pasti dan mengoptimumkan komponen perlahanKesesakan prestasi React: Mengenal pasti dan mengoptimumkan komponen perlahanApr 26, 2025 am 12:25 AM

Kesesakan prestasi bertindak balas terutamanya disebabkan oleh rendering yang tidak cekap, pengubahsuaian semula dan pengiraan komponen berat dalaman komponen. 1) Gunakan ReactDevTools untuk mencari komponen perlahan dan gunakan pengoptimuman reaksi. 2) Mengoptimumkan useeffect untuk memastikan bahawa ia hanya berjalan apabila perlu. 3) Gunakan usememo dan usecallback untuk pemprosesan memori. 4) Pecahkan komponen besar ke dalam komponen kecil. 5) Untuk senarai data besar, gunakan teknologi menatal maya untuk mengoptimumkan rendering. Melalui kaedah ini, prestasi aplikasi React dapat ditingkatkan dengan ketara.

Alternatif untuk bertindak balas: Meneroka perpustakaan dan kerangka UI JavaScript lainAlternatif untuk bertindak balas: Meneroka perpustakaan dan kerangka UI JavaScript lainApr 26, 2025 am 12:24 AM

Seseorang mungkin mencari alternatif untuk bertindak balas kerana masalah prestasi, lengkung pembelajaran, atau meneroka kaedah pembangunan UI yang berbeza. 1) Vue.js dipuji kerana kemudahan integrasi dan lengkung pembelajaran ringan, sesuai untuk aplikasi kecil dan besar. 2) Angular dibangunkan oleh Google dan sesuai untuk aplikasi besar, dengan sistem jenis yang kuat dan suntikan ketergantungan. 3) Svelte menyediakan prestasi dan kesederhanaan yang sangat baik dengan menyusunnya ke dalam JavaScript yang cekap pada masa membina, tetapi ekosistemnya masih berkembang. Apabila memilih alternatif, mereka harus ditentukan berdasarkan keperluan projek, pengalaman pasukan dan saiz projek.

Algoritma Rekonsiliasi Kekunci dan React: Meningkatkan PrestasiAlgoritma Rekonsiliasi Kekunci dan React: Meningkatkan PrestasiApr 26, 2025 am 12:21 AM

KekunciSinreacTarespecialTributSassignedtoElementSinarrayStableIdentity, crucialforthereconcililiatiationalgorithmwhichupdatesthedomefficiently.1)

Kod boilerplate yang diperlukan untuk projek reaksi: Mengurangkan overhead persediaanKod boilerplate yang diperlukan untuk projek reaksi: Mengurangkan overhead persediaanApr 26, 2025 am 12:19 AM

ToreduceSetupoverheadinreactprojects, usetoolslikecreatereactapp (CRA), next.js, gatsby, orstarterkits, andmaintainamodularstructur E.1) crasimplifiessetupwithasinglecommand.2) next.jsandgatsbyofforefeaturesbutalearningcurve.3) starterkitsprovideecomprehensi

Memahami UseState (): Panduan Komprehensif untuk Menegaskan Pengurusan NegeriMemahami UseState (): Panduan Komprehensif untuk Menegaskan Pengurusan NegeriApr 25, 2025 am 12:21 AM

useState () isareacthookusedtomanagestateinfunctionalcomponents.1) itinitializesandupdatesstate, 2) harusbecalledatthetoplevelofcomponents, 3) canleadto'stalestate'ifnotusedCorrecly, dan4)

Apakah kelebihan menggunakan React?Apakah kelebihan menggunakan React?Apr 25, 2025 am 12:16 AM

Reactispopularduetoitscomponent-berasaskan-berasaskan, virtualdom, richecosystem, anddeclarativenature.1) komponen-berasaskan komponen yang tidak dapat dipisahkan.

Debugging dalam React: Mengenal pasti dan menyelesaikan masalah biasaDebugging dalam React: Mengenal pasti dan menyelesaikan masalah biasaApr 25, 2025 am 12:09 AM

TODEBUGREACTAPPLICATIONSEFECTIVELY, USETHESESTRATION

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini