ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScript はポリモーフィズムをサポートしていますか?

JavaScript はポリモーフィズムをサポートしていますか?

WBOY
WBOYオリジナル
2022-07-28 17:11:402158ブラウズ

JavaScript はポリモーフィズムをサポートしています。ポリモーフィズムとは、異なるデータ型のエンティティに統一インターフェイスを提供することを指します。ポリモーフィック型は、サポートする操作を他の型の値に適用できます。JavaScript では、ポリモーフィズムとは、同じ操作が異なる解釈を生成できることを意味します異なるオブジェクトに対する実行結果。

JavaScript はポリモーフィズムをサポートしていますか?

このチュートリアルの動作環境: Windows 10 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript はポリモーフィズムをサポートします

プログラミング言語および型理論において、ポリモーフィズム (英語: Polymorphism) とは、異なるデータ型のエンティティに統一されたインターフェイスを提供することを指します。多態性型 (英語: Polymorphic Types) は、サポートする操作を他の型の値に適用できます。

意味

同じ操作が異なるオブジェクトに作用するため、異なる解釈や異なる実行結果が生成される可能性があります

たとえば、私は猫を育て、犬です。同じコマンド「吠えて」を与えると、猫は鳴き、犬は吠えます。したがって、吠えるように頼むことは同じ操作ですが、吠え方が異なれば処刑も異なります。

たとえば、

監督は、アクションが始まったら、各俳優がやるべきことを監督の代わりに

と言いました。各アクターに何をすべきかを指示します。

ポリモーフィズムの最も基本的な利点は、オブジェクトに「あなたはどのタイプですか?」と尋ねる必要がなくなったことです。

その後、オブジェクトの特定の関数を呼び出す必要がなくなります。動作

動作を呼び出すだけで、他のすべてのポリモーフィックなメカニズムが自動的に調整されます

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

Example

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

実際のケース

// 实际案例
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)

[関連する推奨事項: JavaScript ビデオ チュートリアル Web フロントエンド ]

以上がJavaScript はポリモーフィズムをサポートしていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。