Adakah javascript menyokong polimorfisme?

WBOY
Lepaskan: 2022-07-28 17:11:40
asal
2075 orang telah melayarinya

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.

Adakah javascript menyokong polimorfisme?

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi JavaScript 1.8.5, komputer Dell G3.

Javascript menyokong polimorfisme

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());
// 此时如果加一个狗,还需要再去改源代码
Salin selepas log masuk

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());
Salin selepas log masuk

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)
Salin selepas log masuk

[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!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!