Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengekalkan Nilai \'ini\' Semasa Menyusun Kod Berasaskan Prototaip JavaScript?
Organisasi Kod dan Nilai "ini" dalam JavaScript Berorientasikan Objek
Apabila mengatur kod berasaskan prototaip JavaScript, cabaran biasa timbul dalam memelihara rujukan objek dan warisan. Katakan anda mempunyai kelas Carousel dengan pelbagai fungsi seperti next(), prev(), dan bindControls(). Untuk meningkatkan organisasi kod, anda ingin mengumpulkan fungsi ini di bawah sifat kawalan seperti:
Carousel.prototype.controls = { next: function () { ... } , prev: function() { ... }, bindControls: function () { .. } };
Walau bagaimanapun, pendekatan ini mengganggu nilai "ini", yang penting untuk mengakses sifat dan kaedah objek. Untuk mengekalkan nilai "ini" dalam konteks asal, anda boleh menggunakan penyelesaian berikut:
Buat kelas Kawalan, yang menyimpan rujukan kepada objek boleh dikawal dalam pembina Kawalan. Kaedah dalam Kawalan yang mengendalikan tindakan, seperti next(), menggunakan rujukan untuk menggunakan kaedah yang sesuai dalam objek boleh dikawal.
var Controls = function (controllable_object) { this.ref = controllable_object; }; Controls.prototype.next = function () { this.ref.foo(); } // .. var Carousel = function () { this.controls = new Controls(this); }; // ..
Ini memastikan pewarisan dan membolehkan anda mengatasi pelaksanaan Kawalan melalui mekanisme seperti suntikan pergantungan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Nilai \'ini\' Semasa Menyusun Kod Berasaskan Prototaip JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!