我是靠谱客的博主 知性小天鹅,这篇文章主要介绍javascript支持多态吗,现在分享给大家,希望可以做个参考。

本教程操作环境:windows10系统、javascript1.8.5版、Dell G3电脑。

javascript支持多态

在编程语言和类型论中,多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口。 多态类型(英语:polymorphic type)可以将自身所支持的操作套用到其它类型的值上。

含义

同一操作作用于不同的对象上面,可以产生不同的解释和不同的执行结果

比方说,我养了一只猫和一只狗,我对它们发出同一个指令 “叫一下”,猫会喵喵喵,而狗会汪汪汪,所以让它们叫一下就是同一操作,而叫声不同则是不同的执行结果。

例如

导演说开始action的时候,每个演员就自己做自己该做的事情,

而不是导演一个个的去告诉每个演员去做什么

多态的最根本的好处在于,你不必再向对象询问"你是什么类型"

然后根据得到的答案调用对象的某个行为

你只管调用该行为就行了,其他的一切多态机制都会为你安排妥当

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 多态背后的思想是将 做什么 和 谁去做 分离 // 也就是将不变的事物 与 可能改变的事物 分离出来 // 先来一段反例的多态代码 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()); // 此时如果加一个狗,还需要再去改源代码
登录后复制

示例

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 首先把不变的部分隔离出来 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());
登录后复制

实际案例

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 实际案例 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支持多态吗的详细内容,更多请关注靠谱客其它相关文章!

最后

以上就是知性小天鹅最近收集整理的关于javascript支持多态吗的全部内容,更多相关javascript支持多态吗内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部