Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Memanggil Kaedah Statik dalam Kelas ES6: Pembina vs. Nama Kelas?

Bagaimana untuk Memanggil Kaedah Statik dalam Kelas ES6: Pembina vs. Nama Kelas?

Patricia Arquette
Lepaskan: 2024-11-16 07:50:03
asal
967 orang telah melayarinya

How to Call Static Methods in ES6 Classes: Constructor vs. Class Name?

Memanggil Kaedah Statik dalam Kelas ES6

Dalam kelas ES6, kaedah statik boleh ditakrifkan menggunakan kata kunci statik. Seseorang mungkin tertanya-tanya tentang cara standard untuk memanggil kaedah statik ini.

Dua Pendekatan:

1. Menggunakan Pembina

Pendekatan ini melibatkan penggunaan sifat pembina bagi contoh kelas untuk mengakses kaedah statik. Contohnya:

class SomeObject {
  constructor(n) {
    this.n = n;
  }

  static print(n) {
    console.log(n);
  }

  printN() {
    this.constructor.print(this.n);
  }
}
Salin selepas log masuk

2. Menggunakan Nama Kelas

Pendekatan lain ialah dengan terus menggunakan nama kelas untuk memanggil kaedah statik. Begitu juga:

SomeObject.print(123);
Salin selepas log masuk

Implikasi Warisan:

Menggunakan kedua-dua pendekatan mempunyai implikasi yang berbeza apabila menangani kaedah pewarisan dan mengatasi kaedah statik.

  • Pendekatan pembina: Menggunakan penghantaran dinamik, jadi ia merujuk kepada kelas tika semasa. Jika kaedah statik ditindih dalam subkelas, kaedah yang ditindih akan dipanggil.
  • Pendekatan nama kelas: Merujuk terus kepada kelas di mana kaedah statik ditakrifkan, memintas sebarang kemungkinan penggantian dalam subkelas.

Kesimpulan:

Kedua-dua pendekatan adalah sah, tetapi pilihan bergantung pada tingkah laku yang diingini dalam konteks pewarisan. Jika anda menjangkakan sifat statik kekal konsisten dan tergolong dalam kelas asal, gunakan pendekatan nama kelas. Jika anda memerlukan akses dinamik kepada sifat statik kelas contoh semasa, gunakan pendekatan pembina.

Atas ialah kandungan terperinci Bagaimana untuk Memanggil Kaedah Statik dalam Kelas ES6: Pembina vs. Nama Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan