Maison >interface Web >Questions et réponses frontales >Javascript prend-il en charge le polymorphisme ?

Javascript prend-il en charge le polymorphisme ?

WBOY
WBOYoriginal
2022-07-28 17:11:402157parcourir

JavaScript prend en charge le polymorphisme ; le polymorphisme fait référence à la fourniture d'une interface unifiée pour les entités de différents types de données. Les types polymorphes peuvent appliquer leurs opérations prises en charge à d'autres types de valeurs. Le polymorphisme en JavaScript signifie que la même opération sur différents objets peut produire différentes interprétations et exécutions différentes. résultats.

Javascript prend-il en charge le polymorphisme ?

L'environnement d'exploitation de ce tutoriel : système Windows 10, JavaScript version 1.8.5, ordinateur Dell G3.

Javascript prend en charge le polymorphisme

Dans les langages de programmation et la théorie des types, le polymorphisme (anglais : polymorphism) fait référence à la fourniture d'une interface unifiée pour les entités de différents types de données. Un type polymorphe (anglais : polymorphic type) peut appliquer ses opérations prises en charge à des valeurs d'autres types.

Signification

La même opération agit sur des objets différents, ce qui peut produire différentes interprétations et différents résultats d'exécution

Par exemple, j'ai un chat et un chien, et je leur donne la même commande ""Arc", le chat miaule et le chien aboie, donc les laisser aboyer est la même opération, et différents aboiements ont des résultats d'exécution différents.

Par exemple

Lorsque le réalisateur dit de commencer l'action, chaque acteur fera ce qu'il doit faire,

au lieu que le réalisateur dise à chaque acteur quoi faire un par un

La chose la plus fondamentale à propos du polymorphisme L'avantage est que vous n'avez plus besoin de demander à l'objet "Quel type êtes-vous ?", puis d'appeler un certain comportement de l'objet en fonction de la réponse que vous obtenez, et tous les autres mécanismes polymorphes seront organisés. pour vous.

// 多态背后的思想是将 做什么 和 谁去做 分离
// 也就是将不变的事物 与 可能改变的事物 分离出来
// 先来一段反例的多态代码
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());
// 此时如果加一个狗,还需要再去改源代码

Exemple

// 首先把不变的部分隔离出来
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());

Cas réel

// 实际案例
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)
[Recommandations associées : tutoriel vidéo javascript

,

front-end web

]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn