Rumah hujung hadapan web Soal Jawab bahagian hadapan Bagaimanakah ES6 mentakrifkan kelas?

Bagaimanakah ES6 mentakrifkan kelas?

Mar 09, 2022 pm 06:52 PM
class es6 baik hati

Dalam ES6, kelas (kelas) telah diperkenalkan sebagai templat untuk objek, dan kelas boleh ditakrifkan melalui kata kunci "kelas". Intipati kelas adalah fungsi, yang boleh dianggap sebagai gula sintaksis, menjadikan penulisan prototaip objek lebih jelas dan lebih seperti sintaks pengaturcaraan berorientasikan objek.

Bagaimanakah ES6 mentakrifkan kelas?

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

Kelas ES6

Dalam ES6, kelas (kelas) diperkenalkan sebagai templat untuk objek dan boleh ditakrifkan melalui kata kunci "kelas" baik hati.

Intipati kelas ialah fungsi.

Pada asasnya, kelas ES6 boleh dianggap hanya sebagai gula sintaksis Kebanyakan fungsinya boleh dicapai oleh ES5 Kaedah penulisan kelas baharu hanya menjadikan kaedah penulisan prototaip objek lebih jelas dan lebih berorientasikan objek hanya sintaks pengaturcaraan.

Penggunaan asas

Takrifan kelas

Ungkapan kelas boleh tanpa nama atau dinamakan.

// 匿名类
let Example = class {
    constructor(a) {
        this.a = a;
    }
}
// 命名类
let Example = class Example {
    constructor(a) {
        this.a = a;
    }
}
Salin selepas log masuk

Pengisytiharan kelas

class Example {
    constructor(a) {
        this.a = a;
    }
}
Salin selepas log masuk

Nota: Pengisytiharan berulang tidak dibenarkan.

class Example{}
class Example{}
// Uncaught SyntaxError: Identifier 'Example' has already been 
// declared
 
let Example1 = class{}
class Example{}
// Uncaught SyntaxError: Identifier 'Example' has already been 
// declared
Salin selepas log masuk

Nota:

Takrifan kelas tidak akan dinaikkan pangkat, yang bermaksud bahawa kelas mesti ditakrifkan sebelum mengakses, jika tidak ralat akan dilaporkan.

Kaedah dalam kelas tidak memerlukan kata kunci fungsi.

Titik koma tidak boleh ditambah antara kaedah.

new Example(); 
class Example {}
Salin selepas log masuk

Badan kelas

Atribut

prototaip

Dalam ES6, prototaip masih wujud Walaupun kaedah boleh ditakrifkan terus dari kelas, kaedah sebenarnya masih ditakrifkan pada prototaip. Gantikan kaedah/Tambah kaedah semasa permulaan

Example.prototype={
    //methods
}
Salin selepas log masuk

Tambah kaedah

Object.assign(Example.prototype,{
    //methods
})
Salin selepas log masuk

Atribut statik

Atribut statik: atribut kelas itu sendiri, iaitu, ditakrifkan secara langsung di dalam kelas Properties ( Class.propname ), tidak perlu dijadikan instantiated. ES6 menetapkan bahawa hanya terdapat kaedah statik di dalam Kelas dan tiada sifat statik.

class Example {
// 新提案
    static a = 2;
}
// 目前可行写法
Example.b = 2;
Salin selepas log masuk

Sifat awam

class Example{}
Example.prototype.a = 2;
Salin selepas log masuk

Sifat instance

Sifat instance: sifat yang ditakrifkan pada objek instance ( this ).

class Example {
    a = 2;
    constructor () {
        console.log(this.a);
    }
}
Salin selepas log masuk

atribut nama

Mengembalikan nama kelas berikut kelas (apabila ia wujud).

let Example=class Exam {
    constructor(a) {
        this.a = a;
    }
}
console.log(Example.name); // Exam
 
let Example=class {
    constructor(a) {
        this.a = a;
    }
}
console.log(Example.name); // Example
Salin selepas log masuk

Kaedah

kaedah pembina

Kaedah pembina ialah kaedah lalai kelas dan dipanggil apabila mencipta objek instantiated bagi kelas.

class Example{
    constructor(){
      console.log('我是constructor');
    }
}
new Example(); // 我是constructor
Salin selepas log masuk

Kembali objek

class Test {
    constructor(){
        // 默认返回实例对象 this
    }
}
console.log(new Test() instanceof Test); // true
 
class Example {
    constructor(){
        // 指定返回对象
        return new Test();
    }
}
console.log(new Example() instanceof Example); // false
Salin selepas log masuk

Kaedah statik

class Example{
    static sum(a, b) {
        console.log(a+b);
    }
}
Example.sum(1, 2); // 3
Salin selepas log masuk

Kaedah prototaip

class Example {
    sum(a, b) {
        console.log(a + b);
    }
}
let exam = new Example();
exam.sum(1, 2); // 3
Salin selepas log masuk

Kaedah contoh

class Example {
    constructor() {
        this.sum = (a, b) => {
            console.log(a + b);
        }
    }
}
Salin selepas log masuk

Instansiasi kelas

baharu

Instansiasi kelas mesti melepasi kata kunci baharu.

class Example {}
 
let exam1 = Example(); 
// Class constructor Example cannot be invoked without 'new'
Salin selepas log masuk

Objek segera

Objek prototaip kongsi

class Example {
    constructor(a, b) {
        this.a = a;
        this.b = b;
        console.log('Example');
    }
    sum() {
        return this.a + this.b;
    }
}
let exam1 = new Example(2, 1);
let exam2 = new Example(3, 1);
 
// __proto__ 已废弃,不建议使用
// console.log(exam1.__proto__ == exam2.__proto__); 
 
console.log(Object.getPrototypeOf(exam1) === Object.getPrototypeOf(exam2));// true
 
Object.getPrototypeOf(exam1).sub = function() {
    return this.a - this.b;
}
console.log(exam1.sub()); // 1
console.log(exam2.sub()); // 2
Salin selepas log masuk

[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web

Atas ialah kandungan terperinci Bagaimanakah ES6 mentakrifkan kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

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

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan kelas dan kaedah dalam Python Cara menggunakan kelas dan kaedah dalam Python Apr 21, 2023 pm 02:28 PM

Konsep dan kejadian kelas dan kaedah Kelas (Kelas): digunakan untuk menerangkan koleksi objek dengan sifat dan kaedah yang sama. Ia mentakrifkan sifat dan kaedah yang biasa kepada setiap objek dalam koleksi. Objek ialah contoh kelas. Kaedah: Fungsi yang ditakrifkan dalam kelas. Kaedah pembinaan kelas __init__(): Kelas mempunyai kaedah khas (kaedah pembinaan) bernama init(), yang dipanggil secara automatik apabila kelas dijadikan instantiated. Pembolehubah instance: Dalam pengisytiharan kelas, atribut diwakili oleh pembolehubah tersebut dipanggil pembolehubah instance. Instantiation: Buat contoh kelas, objek khusus kelas. Warisan: iaitu, kelas terbitan (derivedclass) mewarisi kelas asas (baseclass)

Penamaan konvensyen dalam PHP: Cara menggunakan penamaan kes unta untuk kelas, kaedah dan pembolehubah Penamaan konvensyen dalam PHP: Cara menggunakan penamaan kes unta untuk kelas, kaedah dan pembolehubah Jul 30, 2023 pm 02:43 PM

Penamaan konvensyen dalam PHP: Cara menggunakan notasi camelCase untuk menamakan kelas, kaedah dan pembolehubah Dalam pengaturcaraan PHP, konvensyen penamaan yang baik ialah amalan pengekodan yang penting. Ia meningkatkan kebolehbacaan dan kebolehselenggaraan kod, serta menjadikan kerja berpasukan lebih lancar. Dalam artikel ini, kami akan meneroka konvensyen penamaan biasa: camelCase dan memberikan beberapa contoh cara menggunakannya dalam PHP untuk menamakan kelas, kaedah dan pembolehubah. 1. Apakah tatanama kes unta? CamelCase ialah konvensyen penamaan biasa di mana huruf pertama setiap perkataan ditulis dengan huruf besar,

Gantikan nama kelas elemen menggunakan jQuery Gantikan nama kelas elemen menggunakan jQuery Feb 24, 2024 pm 11:03 PM

jQuery ialah perpustakaan JavaScript klasik yang digunakan secara meluas dalam pembangunan web Ia memudahkan operasi seperti pengendalian acara, memanipulasi elemen DOM, dan melaksanakan animasi pada halaman web. Apabila menggunakan jQuery, anda sering menghadapi situasi di mana anda perlu menggantikan nama kelas elemen Artikel ini akan memperkenalkan beberapa kaedah praktikal dan contoh kod tertentu. 1. Gunakan kaedah removeClass() dan addClass() jQuery menyediakan kaedah removeClass() untuk pemadaman

Ralat PHP: Tidak dapat mengisytiharkan kelas berulang kali, penyelesaian! Ralat PHP: Tidak dapat mengisytiharkan kelas berulang kali, penyelesaian! Aug 25, 2023 pm 04:13 PM

Ralat PHP: Tidak dapat mengisytiharkan kelas berulang kali, penyelesaian! Adalah perkara biasa bagi pembangun menghadapi masalah. Dalam pembangunan PHP, kita sering menghadapi ralat biasa: kelas tidak boleh diisytiharkan berulang kali. Masalah ini kelihatan mudah, tetapi jika tidak diselesaikan dalam masa, kod tidak akan dilaksanakan dengan betul. Artikel ini akan memperkenalkan punca masalah ini dan memberikan penyelesaian untuk rujukan anda. Apabila kami mentakrifkan kelas dalam kod PHP, jika kelas yang sama ditakrifkan beberapa kali dalam fail yang sama atau berbilang fail, ralat yang kelas tidak boleh diisytiharkan berulang kali akan berlaku. ini adalah

Penjelasan terperinci tentang penggunaan Kelas PHP: Jadikan kod anda lebih jelas dan mudah dibaca Penjelasan terperinci tentang penggunaan Kelas PHP: Jadikan kod anda lebih jelas dan mudah dibaca Mar 10, 2024 pm 12:03 PM

Apabila menulis kod PHP, menggunakan kelas adalah amalan yang sangat biasa. Dengan menggunakan kelas, kami boleh merangkum fungsi dan data yang berkaitan dalam satu unit, menjadikan kod lebih jelas, lebih mudah dibaca dan lebih mudah diselenggara. Artikel ini akan memperkenalkan penggunaan PHPClass secara terperinci dan menyediakan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik cara menggunakan kelas dalam projek sebenar untuk mengoptimumkan kod. 1. Cipta dan gunakan kelas Dalam PHP, anda boleh menggunakan kelas kata kunci untuk mentakrifkan kelas dan mentakrifkan sifat dan kaedah dalam kelas.

Teknologi pembungkusan dan aplikasi dalam PHP Teknologi pembungkusan dan aplikasi dalam PHP Oct 12, 2023 pm 01:43 PM

Teknologi enkapsulasi dan enkapsulasi aplikasi dalam PHP ialah konsep penting dalam pengaturcaraan berorientasikan objek Ia merujuk kepada merangkum data dan operasi pada data bersama-sama untuk menyediakan antara muka akses bersatu kepada program luaran. Dalam PHP, enkapsulasi boleh dicapai melalui pengubahsuai kawalan akses dan definisi kelas. Artikel ini akan memperkenalkan teknologi enkapsulasi dalam PHP dan senario aplikasinya, dan menyediakan beberapa contoh kod khusus. 1. Pengubah suai kawalan capaian berkapsul Dalam PHP, pengkapsulan dicapai terutamanya melalui pengubahsuai kawalan capaian. PHP menyediakan tiga pengubah kawalan akses,

Ralat Vue: Tidak dapat menggunakan v-bind untuk mengikat kelas dan gaya dengan betul, bagaimana untuk menyelesaikannya? Ralat Vue: Tidak dapat menggunakan v-bind untuk mengikat kelas dan gaya dengan betul, bagaimana untuk menyelesaikannya? Aug 26, 2023 pm 10:58 PM

Ralat Vue: Tidak dapat menggunakan v-bind untuk mengikat kelas dan gaya dengan betul, bagaimana untuk menyelesaikannya? Dalam pembangunan Vue, kami sering menggunakan arahan v-bind untuk mengikat kelas dan gaya secara dinamik, tetapi kadangkala kami mungkin menghadapi beberapa masalah, seperti tidak dapat menggunakan v-bind dengan betul untuk mengikat kelas dan gaya. Dalam artikel ini, saya akan menerangkan punca masalah ini dan memberi anda penyelesaian. Pertama, mari kita fahami arahan v-bind. v-bind digunakan untuk mengikat V

Bagaimana untuk menentukan sama ada elemen mempunyai kelas dalam jquery Bagaimana untuk menentukan sama ada elemen mempunyai kelas dalam jquery Mar 21, 2023 am 10:47 AM

Bagaimana jquery menentukan sama ada elemen mempunyai kelas: 1. Tentukan sama ada elemen mempunyai kelas tertentu melalui kaedah "hasClass('classname')" 2. Tentukan sama ada elemen mempunyai kelas tertentu melalui "is('.classname ')" kaedah.

See all articles