Bagaimanakah Saya Boleh Menyusun Prototaip JavaScript Semasa Memelihara Rujukan dan Warisan \'ini\'?

Susan Sarandon
Lepaskan: 2024-11-23 00:58:11
asal
891 orang telah melayarinya

How Can I Organize JavaScript Prototypes While Preserving

Mengatur Prototaip JavaScript dengan Rujukan dan Warisan Terpelihara

Untuk menyusun kod dengan berkesan apabila menggunakan prototaip dan warisan JavaScript, isu biasa timbul dengan kehilangan daripada nilai "ini" dalam prototaip tersuai. Dalam masalah ini, tujuannya adalah untuk menyusun kod dengan membahagikan fungsi ke dalam objek bersarang sambil mengekalkan rujukan dan warisan.

Penyelesaian Cadangan:

Satu pendekatan untuk menyelesaikan isu ini ialah untuk mencipta kelas khusus untuk fungsi yang dipersoalkan dan bukannya menyarangkannya secara langsung dalam prototaip sendiri.

var Controls = function (controllable_object) {
    this.ref = controllable_object;
};
Controls.prototype.next = function () {
    this.ref.foo();
}
// ..

var Carousel = function () {
    this.controls = new Controls(this);
};
// ..
Salin selepas log masuk

Dengan mentakrifkan Kawalan sebagai kelas berasingan, rujukan "ini" kekal utuh walaupun dalam prototaip tersuai. Walau bagaimanapun, penyelesaian ini disertakan dengan pengehadan untuk tidak membenarkan pelaksanaan Kawalan dibatalkan.

Penyelesaian Suntikan Kebergantungan:

Untuk membolehkan penetapan pelaksanaan Kawalan, a pendekatan suntikan pergantungan boleh digunakan:

var Controls = function (controllable_object) {
    this.ref = controllable_object;
};
Controls.prototype.next = function () {
    this.ref.foo();
}
// ..

var Carousel = function () {
    this.controllers = [];
};
Carousel.prototype.addController = function (controller) {
    this.controllers.push(controller);
};
// ..

var carousel = new Carousel();
carousel.addController(new Controls(carousel));
Salin selepas log masuk

Penyelesaian ini memberikan fleksibiliti dengan membenarkan penambahan dinamik dan pengubahsuaian pengawal, membolehkan penggantian terpilih fungsi dalam kelas yang diwarisi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyusun Prototaip JavaScript Semasa Memelihara Rujukan dan Warisan \'ini\'?. 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