cari

Adakah kelas es6 satu fungsi?

Apr 11, 2022 pm 02:37 PM
classes6fungsi

kelas es6 ialah fungsi. Dalam es6, kelas (kelas) diperkenalkan sebagai templat untuk objek Kelas boleh ditakrifkan melalui kata kunci kelas Sintaks ialah "nama kelas {...}; intipati kelas ialah fungsi (fungsi), iaitu a gula sintaksis. Lapisan bawah dicipta melalui "pembina"

Adakah kelas es6 satu fungsi?

Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3. 🎜>

kelas es6 ialah fungsi

Dalam ES6, kelas (kelas) diperkenalkan sebagai templat untuk objek, dan kelas boleh ditakrifkan melalui kata kunci kelas adalah fungsi.

Ia boleh dianggap sebagai gula sintaksis, dan lapisan bawahnya dicipta melalui

, menjadikan kaedah penulisan prototaip objek lebih jelas dan lebih seperti sintaks pengaturcaraan berorientasikan objek .

Kod di atas dilaksanakan menggunakan

ES6, iaitu kaedah pembina berikut data kelas. Jenisnya ialah fungsi, dan kelas itu sendiri menunjuk kepada pembina Apabila mentakrifkan kelas, tidak perlu menambah fungsi di hadapan, dan tidak perlu memisahkan kaedah dengan koma >构造函数Semua kaedah kelas ditakrifkan pada atribut prototaip kelas

function Person(name, age) {
    this.name = name;
    this.age = age;
}
Person.prototype.sayName = function() {
    return this.name;
}

const xiaoming = new Person('小明', 18);
console.log(xiaoming);

Memanggil kaedah pada contoh kelas sebenarnya memanggil kaedah. pada prototaip >classContoh kelas

class Person {
    constructor(name, age) {
      this.name = name;
      this.age = age;
    }
  
    sayName() {
      return this.name;
    }
}
const xiaoming = new Person('小明', 18)
console.log(xiaoming);
// { name: '小明', age: 18 }

console.log((typeof Person));
// function
console.log(Person === Person.prototype.constructor);
// true

Melainkan atribut contoh itu ditakrifkan secara eksplisit pada dirinya sendiri (iaitu, ditakrifkan pada objek ini), ia ditakrifkan pada prototaip (iaitu , ditakrifkan pada kelas).

Nota:

1 Tiada promosi berubah-ubah dalam kelas

Kerana ES6 tidak akan mempromosikan pengisytiharan kelas kepada ketua. daripada kod. Sebab peraturan ini adalah sama, anda mesti memastikan bahawa subkelas ditakrifkan selepas kelas induk
class A {
    constructor() {}
    toString() {}
    toValue() {}
}
// 等同于
function A () {
    // constructor
};
A.prototype.toString = function() {};
A.prototype.toValue = function() {};

Kod di atas tidak akan melaporkan ralat, kerana apabila B mewarisi A, A sudah mempunyai definisi Walau bagaimanapun, jika terdapat promosi kelas, kod di atas tidak akan melaporkan ralat kerana kelas akan dinaikkan ke kepala kod, tetapi perintah let tidak dinaikkan pangkat, jadi apabila B mewarisi A, Foo belum ditakrifkan lagi
let a = new A();
a.constructor === A.prototype.constructor // true

2. anda mesti berhati-hati. Sebaik sahaja kaedah ini digunakan secara bersendirian, ralat mungkin akan dilaporkan

Kelas boleh diluluskan

Kelas kod di atas mentakrifkan kelas Cat, yang mewarisi semua sifat dan kaedah dalam kelas Haiwan melalui kata kunci lanjutan. Tetapi oleh kerana tiada kod digunakan, kedua-dua kelas adalah sama, yang setara dengan menyalin kelas Haiwan. Seterusnya, kami menambah kod di dalam Cat.

Kata kunci super muncul dalam kedua-dua kaedah pembina dan kaedah toString Ia mewakili pembina kelas induk di sini dan digunakan untuk mencipta objek baharu ini bagi kelas induk.
new A(); // ReferenceError
class A {}

Subkelas mesti memanggil kaedah super dalam kaedah pembina, jika tidak, ralat akan dilaporkan semasa mencipta tika baharu. Ini kerana objek ini milik subkelas sendiri mesti terlebih dahulu dibentuk oleh pembina kelas induk untuk mendapatkan atribut dan kaedah contoh yang sama seperti kelas induk, dan kemudian ia diproses dan atribut dan kaedah contoh subkelas itu sendiri ditambah. Jika kaedah super tidak dipanggil, subkelas tidak akan mendapat objek ini.

{
  let A = class {};
  class B extends A {}
}

Cat mewarisi kelas induk Haiwan, tetapi pembinanya tidak memanggil kaedah super, menyebabkan kejadian baharu melaporkan ralat.

Jika subkelas tidak mentakrifkan kaedah pembina, kaedah ini akan ditambah secara lalai Kodnya adalah seperti berikut. Dalam erti kata lain, tidak kira sama ada ia ditakrifkan secara eksplisit atau tidak, mana-mana subkelas mempunyai kaedah pembina.

Perkara lain yang perlu diberi perhatian ialah pembina es5 boleh mengakses ini sebelum memanggil pembina induk, tetapi pembina es6 tidak boleh mengakses ini sebelum memanggil pembina induk (iaitu super).

Dalam kod di atas, kaedah pembina subkelas menggunakan kata kunci ini sebelum memanggil super, mengakibatkan ralat, bagaimanapun, adalah betul untuk meletakkannya selepas kaedah super.

class Animal {}
class Cat extends Animal { };
Kaedah statik kelas induk juga akan diwarisi oleh subkelas.

class Cat extends Animal {
    constructor(name, age, color) {
        // 调用父类的constructor(name, age)
        super(name, age);
        this.color = color;
    }
    toString() {
        return this.color + ' ' + super.toString(); // 调用父类的toString()
    }
}
[Cadangan berkaitan:

tutorial video javascript

,

bahagian hadapan web

]
class Animal { /* ... */ }

class Cat extends Animal {
  constructor() {
  }
}

let cp = new Cat();
// ReferenceError

Atas ialah kandungan terperinci Adakah kelas es6 satu fungsi?. 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
React Inside HTML: Mengintegrasikan JavaScript untuk laman web dinamikReact Inside HTML: Mengintegrasikan JavaScript untuk laman web dinamikApr 16, 2025 am 12:06 AM

Untuk mengintegrasikan React ke HTML, ikuti langkah -langkah ini: 1. Memperkenalkan React dan Reactdom dalam fail HTML. 2. Tentukan komponen React. 3. Mengadakan komponen ke dalam elemen HTML menggunakan ReactDom. Melalui langkah -langkah ini, halaman HTML statik dapat diubah menjadi pengalaman yang dinamik dan interaktif.

Faedah bertindak balas: prestasi, kebolehgunaan semula, dan banyak lagiFaedah bertindak balas: prestasi, kebolehgunaan semula, dan banyak lagiApr 15, 2025 am 12:05 AM

Populariti React termasuk pengoptimuman prestasi, penggunaan semula komponen dan ekosistem yang kaya. 1. Pengoptimuman prestasi mencapai kemas kini yang cekap melalui mekanisme maya dan mekanisme yang berbeza. 2. Penggunaan semula komponen mengurangkan kod pendua oleh komponen yang boleh diguna semula. 3. Ekosistem yang kaya dan aliran data sehala meningkatkan pengalaman pembangunan.

React: Membuat antara muka pengguna yang dinamik dan interaktifReact: Membuat antara muka pengguna yang dinamik dan interaktifApr 14, 2025 am 12:08 AM

React adalah alat pilihan untuk membina antara muka pengguna yang dinamik dan interaktif. 1) Komponen dan JSX membuat UI berpecah dan menggunakan semula mudah. 2) Pengurusan negeri dilaksanakan melalui cangkuk UseState untuk mencetuskan kemas kini UI. 3) Mekanisme pemprosesan acara bertindak balas terhadap interaksi pengguna dan meningkatkan pengalaman pengguna.

Rangka Kerja Backend: PerbandinganRangka Kerja Backend: PerbandinganApr 13, 2025 am 12:06 AM

React adalah rangka kerja front-end untuk membina antara muka pengguna; Rangka kerja back-end digunakan untuk membina aplikasi sisi pelayan. React menyediakan kemas kini UI yang komponen dan cekap, dan Rangka Kerja Backend menyediakan penyelesaian perkhidmatan backend lengkap. Apabila memilih timbunan teknologi, keperluan projek, kemahiran pasukan, dan skalabiliti harus dipertimbangkan.

HTML dan React: Hubungan antara markup dan komponenHTML dan React: Hubungan antara markup dan komponenApr 12, 2025 am 12:03 AM

Hubungan antara HTML dan React adalah teras pembangunan front-end, dan mereka bersama-sama membina antara muka pengguna aplikasi web moden. 1) HTML mentakrifkan struktur kandungan dan semantik, dan React membina antara muka dinamik melalui komponenisasi. 2) Komponen React Gunakan sintaks JSX untuk membenamkan HTML untuk mencapai rendering pintar. 3) Kitaran Hayat Komponen Menguruskan Rendering HTML dan Kemas kini secara dinamik mengikut keadaan dan atribut. 4) Gunakan komponen untuk mengoptimumkan struktur HTML dan meningkatkan keupayaan. 5) Pengoptimuman prestasi termasuk mengelakkan penyampaian yang tidak perlu, menggunakan atribut utama, dan menjaga tanggungjawab tunggal komponen.

React and the Frontend: Membina Pengalaman InteraktifReact and the Frontend: Membina Pengalaman InteraktifApr 11, 2025 am 12:02 AM

React adalah alat pilihan untuk membina pengalaman front-end interaktif. 1) React memudahkan pembangunan UI melalui komponen dan DOM maya. 2) Komponen dibahagikan kepada komponen fungsi dan komponen kelas. Komponen fungsi adalah lebih mudah dan komponen kelas menyediakan lebih banyak kaedah kitaran hayat. 3) Prinsip kerja React bergantung kepada algoritma DOM dan perdamaian maya untuk meningkatkan prestasi. 4) Pengurusan negeri menggunakan useState atau ini. Kaedah kitaran hayat seperti ComponentDidMount digunakan untuk logik tertentu. 5) Penggunaan asas termasuk membuat komponen dan pengurusan negeri, dan penggunaan lanjutan melibatkan cangkuk tersuai dan pengoptimuman prestasi. 6) Kesalahan biasa termasuk kemas kini status yang tidak betul dan isu prestasi, kemahiran debugging termasuk menggunakan reactdevtools dan sangat baik

React and the Frontend Stack: Alat dan TeknologiReact and the Frontend Stack: Alat dan TeknologiApr 10, 2025 am 09:34 AM

React adalah perpustakaan JavaScript untuk membina antara muka pengguna, dengan komponen terasnya dan pengurusan negeri. 1) Memudahkan pembangunan UI melalui komponen dan pengurusan negeri. 2) Prinsip kerja termasuk perdamaian dan rendering, dan pengoptimuman dapat dilaksanakan melalui React.Memo dan Usememo. 3) Penggunaan asas adalah untuk membuat dan membuat komponen, dan penggunaan lanjutan termasuk menggunakan cangkuk dan konteksapi. 4) Kesalahan biasa seperti kemas kini status yang tidak betul, anda boleh menggunakan ReactDevTools untuk debug. 5) Pengoptimuman prestasi termasuk menggunakan react.memo, senarai virtualisasi dan codesplitting, dan menyimpan kod yang boleh dibaca dan dikekalkan adalah amalan terbaik.

Peranan React dalam HTML: Meningkatkan Pengalaman PenggunaPeranan React dalam HTML: Meningkatkan Pengalaman PenggunaApr 09, 2025 am 12:11 AM

React menggabungkan JSX dan HTML untuk meningkatkan pengalaman pengguna. 1) JSX membenamkan HTML untuk menjadikan pembangunan lebih intuitif. 2) Mekanisme DOM maya mengoptimumkan prestasi dan mengurangkan operasi DOM. 3) UI pengurusan berasaskan komponen untuk meningkatkan kebolehkerjaan. 4) Pengurusan negeri dan pemprosesan acara meningkatkan interaktiviti.

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.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

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.