Rumah  >  Artikel  >  hujung hadapan web  >  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
Patricia Arquetteasal
2024-11-16 07:50:03885semak imbas

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);
  }
}

2. Menggunakan Nama Kelas

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

SomeObject.print(123);

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!

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