JavaScript menyokong polimorfisme merujuk kepada menyediakan antara muka bersatu untuk entiti jenis data yang berbeza boleh menggunakan operasi yang mereka sokong pada jenis nilai lain dalam JavaScript Polimorfisme bermakna operasi yang sama boleh menghasilkan tafsiran yang berbeza dan hasil pelaksanaan pada objek yang berbeza.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi JavaScript 1.8.5, komputer Dell G3.
Dalam bahasa pengaturcaraan dan teori jenis, polimorfisme (Bahasa Inggeris: polymorphism) merujuk kepada menyediakan antara muka bersatu untuk entiti jenis data yang berbeza. Jenis polimorfik (Bahasa Inggeris: polymorphic types) boleh menggunakan operasi yang mereka sokong pada nilai jenis lain.
Maksud
Operasi yang sama bertindak pada objek yang berbeza, yang boleh menghasilkan tafsiran yang berbeza dan hasil pelaksanaan yang berbeza
Sebagai contoh, saya memelihara seekor kucing dan anjing. Jika saya memberi mereka perintah yang sama "menyalak", kucing akan mengeong dan anjing itu akan menyalak.
Contohnya,
Pengarah berkata apabila aksi bermula, setiap pelakon harus melakukan apa yang patut dia lakukan,
dan bukannya mengarahkan satu demi satu. satu Beritahu setiap pelakon apa yang perlu dilakukan
Faedah polimorfisme yang paling asas ialah anda tidak perlu lagi bertanya kepada objek "Apakah jenis anda
dan kemudian memanggil fungsi tertentu objek itu berdasarkan jawapan. Satu tingkah laku
Anda hanya perlu memanggil tingkah laku itu, dan semua mekanisme polimorfik lain akan diaturkan untuk anda
// 多态背后的思想是将 做什么 和 谁去做 分离 // 也就是将不变的事物 与 可能改变的事物 分离出来 // 先来一段反例的多态代码 var makeSound = function (animal) { if (animal instanceof Duck) { console.log('嘎嘎嘎'); } else if (animal instanceof Chicken) { console.log('咯咯咯'); } } var Duck = function () { }; var Chicken = function () { }; makeSound(new Duck()); makeSound(new Chicken()); // 此时如果加一个狗,还需要再去改源代码
Contoh
// 首先把不变的部分隔离出来 var makeSound = function (animal) { animal.sound(); } //然后把可变的部分各自封装起来, var Duck = function () { } Duck.prototype.sound = function () { console.log("嘎嘎嘎"); } var Chicken = function () { } Chicken.prototype.sound = function () { console.log("咯咯咯"); } makeSound(new Duck()); makeSound(new Chicken()); //如果有一天改需求了,加一个动物 //简单追加一条代码就可以啦 var Dog = function () { } Dog.prototype.sound = function () { console.log("汪汪汪"); } makeSound(new Dog());
Kes sebenar
// 实际案例 var googleMap = { show: function () { console.log('开始渲染谷歌地图'); } } var baiduMap = { show: function () { console.log('开始渲染百度地图'); } } var renderMap = function (map) { if (map.show instanceof Function) { map.show(); } } renderMap(googleMap)
[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web]
Atas ialah kandungan terperinci Adakah javascript menyokong polimorfisme?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!