JavaScript支不支持多态,多态的含义如何理解
导读:关于“JavaScript支不支持多态,多态的含义如何理解”的知识点有一些人不是很理解,对此小编给大家总结了相关内容,文中的内容简单清晰,易于学习与理解,具有一定的参考学习价值,希望能对大家有所帮助,接下来就跟随小编一起学习一下“JavaS...
关于“JavaScript支不支持多态,多态的含义如何理解”的知识点有一些人不是很理解,对此小编给大家总结了相关内容,文中的内容简单清晰,易于学习与理解,具有一定的参考学习价值,希望能对大家有所帮助,接下来就跟随小编一起学习一下“JavaScript支不支持多态,多态的含义如何理解”吧。JavaScript中支持多态;多态指的是为不同数据类型的实体提供统一的接口,多态类型可以将自身所支持的操作套用到其他类型的值上,在JavaScript中的多态则表示同一操作作用于不同的对象上面可以产生不同的解释和不同的执行结果。
如何快速入门VUE3.0:进入学习
本教程操作环境:windows10系统、javascript1.8.5版、Dell G3电脑。
javascript支持多态
在编程语言和类型论中,多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口。 多态类型(英语:polymorphic type)可以将自身所支持的操作套用到其它类型的值上。
含义
同一操作作用于不同的对象上面,可以产生不同的解释和不同的执行结果
比方说,我养了一只猫和一只狗,我对它们发出同一个指令 “叫一下”,猫会喵喵喵,而狗会汪汪汪,所以让它们叫一下就是同一操作,而叫声不同则是不同的执行结果。
例如
导演说开始action的时候,每个演员就自己做自己该做的事情,
而不是导演一个个的去告诉每个演员去做什么
多态的最根本的好处在于,你不必再向对象询问"你是什么类型"
然后根据得到的答案调用对象的某个行为
你只管调用该行为就行了,其他的一切多态机制都会为你安排妥当
// 多态背后的思想是将 做什么 和 谁去做 分离
// 也就是将不变的事物 与 可能改变的事物 分离出来
// 先来一段反例的多态代码
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());
// 此时如果加一个狗,还需要再去改源代码示例
// 首先把不变的部分隔离出来
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支不支持多态,多态的含义如何理解的介绍,本文内容仅供参考,有需要的朋友可以借鉴了解看看,希望对大家学习或工作,想要了解更多欢迎关注网络,小编每天都会为大家更新不同的知识。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: JavaScript支不支持多态,多态的含义如何理解
本文地址: https://pptw.com/jishu/652706.html
