Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk mengalih keluar prototaip dalam javascript
JavaScript ialah bahasa pengaturcaraan berorientasikan objek, di mana objek mempunyai sifat prototaip, iaitu prototaip. Prototaip objek menyimpan maklumat rantaian prototaip objek, yang merupakan ciri yang sangat berguna dalam JavaScript. Tetapi kadang-kadang, kita perlu menggunakan JavaScript untuk mengeluarkan prototaip, fungsi ini juga sangat penting.
Sebelum memperkenalkan cara mengalih keluar prototaip, kita perlu terlebih dahulu memahami konsep prototaip. Dalam JavaScript, prototaip objek menunjuk ke objek lain, dan objek runcing juga mempunyai prototaip sendiri, sehingga prototaip objek adalah batal.
Dalam rantai prototaip di atas, jika objek tidak menemui sifat atau kaedah yang diperlukan dalam sifatnya sendiri, ia akan mencarinya dalam rantai prototaipnya. Beginilah cara rantai prototaip berfungsi.
Dalam kebanyakan kes, kita tidak perlu mengalih keluar prototaip objek, tetapi dalam beberapa kes, ia perlu untuk mengeluarkan prototaip. Contohnya:
2.1 Perlu menukar objek kepada objek ringkas
Jika objek mempunyai prototaip, maka ia bukan objek mudah (objek biasa) kerana ia mewarisi semua objek dalam rantaian prototaipnya Sifat dan kaedah objek. Jika anda perlu menukar objek ini kepada objek mudah, anda perlu mengalih keluar prototaip terlebih dahulu.
2.2 Elakkan pencemaran rantai prototaip
Sesetengah rangka kerja JavaScript mentakrifkan beberapa sifat dan kaedah pada objek global, yang mungkin menyebabkan konflik penamaan yang serius. Untuk mengelakkan pencemaran rantai prototaip, kita perlu mengalih keluar prototaip objek.
2.3 Perlu membentuk objek kepada jenis lain
Untuk melaksanakan algoritma atau fungsi tertentu, kadangkala kita perlu menukar objek kepada contoh jenis lain. Sebagai contoh, kita perlu menukar objek JavaScript biasa kepada contoh jenis Tarikh. Mula-mula kita boleh mengalih keluar prototaip objek ini dan kemudian menetapkan semula prototaipnya kepada Date.prototype.
Dalam JavaScript, kita boleh menggunakan kaedah Object.setPrototypeOf untuk mengalih keluar prototaip objek dengan menetapkannya kepada null . Kaedah ini memerlukan dua parameter: objek sasaran dan objek prototaip Dalam senario di mana kita perlu mengalih keluar prototaip, parameter objek prototaip harus ditetapkan kepada nol.
Berikut ialah kod sampel:
const myObj = { prop1: 'value1', prop2: 'value2' }; console.log(myObj.__proto__); // 输出: {} Object.setPrototypeOf(myObj, null); console.log(myObj.__proto__); // 输出: undefined
Dalam kod sampel ini, kita mula-mula mentakrifkan objek yang mengandungi dua sifat. Kemudian kami menetapkan prototaip objek ini kepada null melalui kaedah Object.setPrototypeOf. Akhir sekali, kami mencetak prototaip objek ini dan mendapati bahawa prototaip telah berjaya dikeluarkan.
Selain menggunakan kaedah Object.setPrototypeOf, kita juga boleh menggunakan kaedah Object.create untuk mencipta objek tanpa prototaip. Apabila mencipta objek baharu, anda boleh menetapkan parameter prototaip kepada null dan kemudian menambah sebarang sifat dan kaedah yang anda perlukan.
Berikut ialah kod sampel:
const myObj = Object.create(null); myObj.prop1 = 'value1'; myObj.prop2 = 'value2'; console.log(myObj.__proto__); // 输出: undefined
Dalam kod sampel ini, kami menggunakan kaedah Object.create untuk mencipta objek tanpa prototaip dan kemudian menambah dua sifat. Akhirnya kami mencetak prototaip objek ini dan mendapati ia tidak ditentukan.
Dalam JavaScript, rantai prototaip adalah salah satu konsep yang sangat penting, tetapi kadangkala kita perlu mengalih keluar prototaip objek untuk melaksanakan beberapa tertentu fungsi atau algoritma. Prototaip objek boleh dialih keluar menggunakan kaedah Object.setPrototypeOf atau kaedah Object.create. Apabila prototaip dialih keluar, objek tidak lagi akan mewarisi sebarang sifat atau kaedah daripada rantai prototaip.
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar prototaip dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!