Apakah antara muka dalam javascript
Dalam JavaScript, antara muka merujuk kepada jenis rujukan yang mentakrifkan kontrak Antara muka sebenarnya memberitahu kami kaedah yang dilaksanakan oleh kelas, dengan itu membantunya menggunakan antara muka ini boleh menjadikan kod itu lebih stabil.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.
Tiada cara terbina dalam untuk mencipta atau melaksanakan antara muka dalam JavaScript. Ia juga tidak mempunyai kaedah terbina dalam untuk menentukan sama ada satu objek melaksanakan set kaedah yang sama dengan objek lain. Ini menjadikan objek sukar untuk digunakan secara bergantian. Tetapi JavaScript sangat fleksibel, dan kami boleh melaksanakannya dengan cara lain.
Apakah itu antara muka
Antara muka sebenarnya mentakrifkan kaedah yang sepatutnya wujud dalam objek. Dia tidak perlu mempertimbangkan bagaimana kaedah ini dilaksanakan, tetapi mentakrifkan bahawa objek mempunyai kaedah ini.
Antara muka merujuk kepada jenis rujukan yang mentakrifkan kontrak. Jenis lain melaksanakan antara muka untuk memastikan ia menyokong operasi tertentu. Antara muka menentukan ahli yang mesti disediakan oleh kelas atau antara muka lain yang melaksanakannya. Sama seperti kelas, antara muka boleh mengandungi kaedah, sifat, pengindeks dan acara sebagai ahli.
Faedah antara muka
Antara muka sebenarnya memberitahu kami kaedah mana yang dilaksanakan oleh kelas. Ini membantu mereka menggunakan kelas ini. Antara muka boleh menjadikan kod kami lebih stabil jika kami menambah kaedah pada antara muka. Jika kelas yang melaksanakannya tidak menambah kaedah ini dengan sewajarnya, ia pasti akan membuang ralat.
antara muka tiruan javascript
Terdapat tiga kaedah untuk antara muka tiruan JavaScript:
Kaedah anotasi
Kaedah semakan atribut
Kaedah transformasi itik
Gunakan ulasan untuk menerangkan antara muka
Menggunakan ulasan untuk menerangkan antara muka ialah kaedah yang paling mudah, tetapi kesannya adalah yang paling teruk.
/* interface Composite { function add(child); function remove(child); function getChild(index); } interface FormItem { function save(); } */ class CompositeForm { add(child) { //... } remove(child) { } getChild(index) { //... } save() { //... } }
Kaedah tiruan ini tidak begitu baik ia tidak menyemak sama ada CompositeForm melaksanakan kaedah dengan betul melalui pengaturcara secara sedar melaksanakan antara muka dalam anotasi. Walau bagaimanapun, pelaksanaan ini sangat mudah, tetapi ia tidak membantu dalam ujian dan penyahpepijatan.
Kaedah semakan atribut meniru antara muka
Kaedah ini lebih berhati-hati, tetapi antara muka juga ditulis dalam bentuk ulasan, tetapi anda boleh mengetahui kelas tertentu dengan menyemak atribut Apakah antara muka yang dituntut untuk dilaksanakan?
class CompositeForm { constructor() { this.implementsInterface = ['Composite', 'FormItem']; } } function addForm(formInstance) { if (!implements(formInstance, 'Composite', 'FormItem')) { throw new Error('对象没有实现接口方法'); } } function implements(obj) { // 这个方法查询接口 for (let i = 1; i < arguments.length; i++) { let interfaceName = arguments[i]; let interfaceFound = false; for (let j = 1; j < obj.implementsInterface.length; j++) { if (obj.implementsInterface[j] == interfaceName) { interfaceFound = true; break; } } if (!interfaceFound) { return false; } return true; } } addForm(new CompositeForm());
Kelebihan kaedah ini ialah ia menyediakan dokumentasi untuk antara muka yang dilaksanakan oleh kelas Jika antara muka yang diperlukan bukan antara antara muka yang didakwa oleh kelas saya (iaitu, ia tidak ada my this. implementsInterface), anda akan melihat mesej ralat.
Kekurangan juga jelas Jika antara muka diisytiharkan dalam this.implementsInterface saya berbeza daripada antara muka yang ditakrifkan dalam ulasan saya tetapi semakan masih boleh lulus, ini bermakna memanggil kaedah addForm tidak akan menyebabkan ralat <. 🎜>
Gunakan transformasi itik untuk mensimulasikan antara muka
Malah, tidak kira sama ada kelas mengisytiharkan antara muka yang disokongnya, asalkan ia mempunyai kaedah dalam antara muka ini . Transformasi itik menggunakan set kaedah objek sebagai satu-satunya kriteria untuk menentukan sama ada ia adalah contoh. Prinsip pelaksanaan juga sangat mudah: jika objek mempunyai kaedah dengan nama yang sama dengan kaedah yang ditakrifkan oleh antara muka, maka ia boleh dianggap bahawa ia melaksanakan antara muka.// interface class Interface { constructor(name, method) { if (arguments.length != 2) { throw new Error('两个参数:name method'); } this.name = name; this.method = []; for (let i in method) { if (typeof method[i] != 'string') { throw new Error('method 必须是字符串'); } this.method.push(method[i]); } } //检查接口方法 static ensureImplements(obj) { if (arguments.length < 2) { throw new Error('参数小于两个'); } for (let i = 1; i < arguments.length; i++) { var instanceInterface = arguments[i]; if (instanceInterface.constructor !== Interface) { throw new Error('你要检查的参数不属于Interface接口') } for (let j in instanceInterface.method) { let methodName = instanceInterface.method[j]; if (!obj[methodName] || typeof obj[methodName] !== 'function') { throw new Error(`请实现接口的${methodName}方法`) } } } } } // 实例化接口对象 var Composite = new Interface('Composite', ['add', 'remove', 'getChild']); var FormItem = new Interface('FormItem', ['save']); // CompositeForm 类 class CompositeForm { //... add() {} remove() {} getChild() {} } let c1 = new CompositeForm(); Interface.ensureImplements(c1, Composite, FormItem); function addForm(formInterface) { ensureImplements(formInterface, Composite, FormItem); }
Kaedah pelaksanaan rookie ini > Saya memanggil diri saya kaedah warisan Saya menggunakan warisan kelas untuk mensimulasikan antara muka Sila lihat kod untuk pelaksanaan tertentu.
Mula-mula kita mentakrifkan kelas yang digunakan sebagai antara muka Kaedah atribut mewakili set kaedah antara mukaclass Interface { constructor() { this.mehods = ['add', 'save', 'remove', 'save']; } static ensureImplements(obj) { //... } }
Atas ialah kandungan terperinci Apakah antara muka dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apabila kami memasang komputer, walaupun proses pemasangannya mudah, kami sering menghadapi masalah dalam pendawaian Selalunya, pengguna tersilap memasangkan talian bekalan kuasa radiator CPU ke SYS_FAN Walaupun kipas boleh berputar, ia mungkin tidak berfungsi apabila komputer dihidupkan. Akan terdapat ralat F1 "CPUFanError", yang juga menyebabkan penyejuk CPU tidak dapat melaraskan kelajuan secara bijak. Mari kita berkongsi pengetahuan bersama tentang antara muka CPU_FAN, SYS_FAN, CHA_FAN dan CPU_OPT pada papan induk komputer. Sains popular pada antara muka CPU_FAN, SYS_FAN, CHA_FAN dan CPU_OPT pada papan induk komputer 1. CPU_FANCPU_FAN ialah antara muka khusus untuk radiator CPU dan berfungsi pada 12V

Sebagai bahasa pengaturcaraan yang moden dan cekap, bahasa Go mempunyai paradigma pengaturcaraan yang kaya dan corak reka bentuk yang boleh membantu pembangun menulis kod yang berkualiti tinggi dan boleh diselenggara. Artikel ini akan memperkenalkan paradigma pengaturcaraan biasa dan corak reka bentuk dalam bahasa Go dan memberikan contoh kod khusus. 1. Pengaturcaraan berorientasikan objek Dalam bahasa Go, anda boleh menggunakan struktur dan kaedah untuk melaksanakan pengaturcaraan berorientasikan objek. Dengan mentakrifkan struktur dan kaedah mengikat kepada struktur, ciri berorientasikan objek bagi pengkapsulan data dan pengikatan tingkah laku boleh dicapai. packagemaini

Pengenalan kepada antara muka PHP dan bagaimana ia ditakrifkan PHP ialah bahasa skrip sumber terbuka yang digunakan secara meluas dalam pembangunan Web Ia fleksibel, mudah dan berkuasa. Dalam PHP, antara muka ialah alat yang mentakrifkan kaedah biasa antara pelbagai kelas, mencapai polimorfisme dan menjadikan kod lebih fleksibel dan boleh digunakan semula. Artikel ini akan memperkenalkan konsep antara muka PHP dan cara mentakrifkannya, dan menyediakan contoh kod khusus untuk menunjukkan penggunaannya. 1. Konsep antara muka PHP Antara muka memainkan peranan penting dalam pengaturcaraan berorientasikan objek, mentakrifkan aplikasi kelas

Sebab ralat adalah dalam python Sebab mengapa NotImplementedError() dilemparkan dalam Tornado mungkin kerana kaedah atau antara muka abstrak tidak dilaksanakan. Kaedah atau antara muka ini diisytiharkan dalam kelas induk tetapi tidak dilaksanakan dalam kelas anak. Subkelas perlu melaksanakan kaedah atau antara muka ini untuk berfungsi dengan baik. Cara menyelesaikan masalah ini adalah dengan melaksanakan kaedah abstrak atau antara muka yang diisytiharkan oleh kelas induk dalam kelas kanak-kanak. Jika anda menggunakan kelas untuk mewarisi daripada kelas lain dan anda melihat ralat ini, anda harus melaksanakan semua kaedah abstrak yang diisytiharkan dalam kelas induk dalam kelas anak. Jika anda menggunakan antara muka dan anda melihat ralat ini, anda harus melaksanakan semua kaedah yang diisytiharkan dalam antara muka dalam kelas yang melaksanakan antara muka. Jika anda tidak pasti yang mana

Antara muka dan kelas abstrak digunakan dalam corak reka bentuk untuk penyahgandingan dan kebolehlanjutan. Antara muka mentakrifkan tandatangan kaedah, kelas abstrak menyediakan pelaksanaan separa, dan subkelas mesti melaksanakan kaedah yang tidak dilaksanakan. Dalam corak strategi, antara muka digunakan untuk menentukan algoritma, dan kelas abstrak atau kelas konkrit menyediakan pelaksanaan, membenarkan penukaran dinamik algoritma. Dalam corak pemerhati, antara muka digunakan untuk menentukan tingkah laku pemerhati, dan kelas abstrak atau konkrit digunakan untuk melanggan dan menerbitkan pemberitahuan. Dalam corak penyesuai, antara muka digunakan untuk menyesuaikan kelas yang sedia ada atau kelas konkrit boleh melaksanakan antara muka yang serasi, membenarkan interaksi dengan kod asal.

Sebagai sistem pengendalian baharu yang dilancarkan oleh Huawei, sistem Hongmeng telah menimbulkan kekecohan dalam industri. Sebagai percubaan baharu Huawei selepas larangan AS, sistem Hongmeng mempunyai harapan dan harapan yang tinggi. Baru-baru ini, saya cukup bernasib baik untuk mendapatkan telefon mudah alih Huawei yang dilengkapi dengan sistem Hongmeng Selepas tempoh penggunaan dan ujian sebenar, saya akan berkongsi beberapa ujian berfungsi dan pengalaman penggunaan sistem Hongmeng. Mula-mula, mari kita lihat antara muka dan fungsi sistem Hongmeng. Sistem Hongmeng mengguna pakai gaya reka bentuk Huawei sendiri secara keseluruhan, yang mudah, jelas dan lancar dalam operasi. Di desktop, pelbagai

Antara muka dan kelas abstrak digunakan untuk mencipta kod PHP yang boleh diperluaskan, dan terdapat perbezaan utama berikut di antara mereka: Antara muka menguatkuasakan melalui pelaksanaan, manakala kelas abstrak menguatkuasakan melalui warisan. Antara muka tidak boleh mengandungi kaedah konkrit, manakala kelas abstrak boleh. Kelas boleh melaksanakan berbilang antara muka, tetapi hanya boleh mewarisi daripada satu kelas abstrak. Antara muka tidak boleh digunakan, tetapi kelas abstrak boleh.

Java membenarkan kelas dalaman ditakrifkan dalam antara muka dan kelas abstrak, memberikan fleksibiliti untuk penggunaan semula kod dan modularisasi. Kelas dalaman dalam antara muka boleh melaksanakan fungsi tertentu, manakala kelas dalaman dalam kelas abstrak boleh mentakrifkan fungsi umum, dan subkelas menyediakan pelaksanaan konkrit.
