iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >javascript支不支持多态
  • 116
分享到

javascript支不支持多态

2024-04-02 19:04:59 116人浏览 八月长安
摘要

本篇内容主要讲解“javascript支不支持多态”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript支不支持多态”吧!

本篇内容主要讲解“javascript支不支持多态”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript支不支持多态”吧!

JavaScript中支持多态;多态指的是为不同数据类型的实体提供统一的接口,多态类型可以将自身所支持的操作套用到其他类型的值上,在JavaScript中的多态则表示同一操作作用于不同的对象上面可以产生不同的解释和不同的执行结果。

教程操作环境: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支不支持多态”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: javascript支不支持多态

本文链接: https://www.lsjlt.com/news/98393.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • javascript支不支持多态
    本篇内容主要讲解“javascript支不支持多态”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript支不支持多态”吧! ...
    99+
    2022-10-19
  • JavaScript支不支持三角函数
    这篇文章主要介绍“JavaScript支不支持三角函数”,在日常操作中,相信很多人在JavaScript支不支持三角函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java...
    99+
    2022-10-19
  • 苹果不支持javascript
    苹果不支持JavaScript:背后的原因和影响在现代Web世界中,JavaScript几乎是不可或缺的一个组成部分。它是实现动态页面、交互效果、数据处理和响应式设计的主要技术之一。然而,近年来被称为“苹果不支持JavaScript”的现象...
    99+
    2023-05-14
  • oppo不支持JavaScript吗
    近日,有网友发现使用oppo手机访问某些网站时,发现无法正常加载网页,甚至弹出提示窗口提示不支持JavaScript。这一现象引起了部分用户的不满和质疑。首先,我们需要了解什么是JavaScript。JavaScript是一种前端编程语言,...
    99+
    2023-05-14
  • javascript支不支持求余数的方法
    这篇文章主要介绍“javascript支不支持求余数的方法”,在日常操作中,相信很多人在javascript支不支持求余数的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-19
  • JavaScript支持多线程吗
    这期内容当中小编将会给大家带来有关JavaScript支持多线程吗,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JavaScript语言不支持多线程,因为浏览器中的JavaScript解释器是单线程。Ja...
    99+
    2023-06-14
  • windows7支持固态硬盘吗windows7是不是支持固态硬盘
    windows7支持固态硬盘吗,这个问题一般是新手小白提出问题的,但是许多新用户使用电脑都是win10逐渐的因此觉得win7的系统软件不是很强悍,事实上这也是绝大多数新用户的错误观念,那样win7究竟支不支持固态硬盘呢,当然是支持的,接下来...
    99+
    2023-07-13
  • kangle支不支持PHP
    kangle支持PHP;kangle是一款跨平台、功能强大、安全稳定、易操作的高性能web服务器和反向代理服务器软件,也是一款专为做虚拟主机研发的web服务器,支持php、asp、asp.net、vb.net、C#、java、ruby等多种...
    99+
    2023-05-14
    kangle php
  • webpack支不支持es6
    这篇文章主要介绍了webpack支不支持es6的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇webpack支不支持es6文章都会有所收获,下面我们一起来看看吧。webpack支持es6。webpack 2支持原...
    99+
    2023-07-05
  • safari支不支持html5
    这篇文章主要介绍了safari支不支持html5的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇safari支不支持html5文章都会有所收获,下面我们一起来看看吧。safari是支持html5的;用户可以直接访...
    99+
    2023-07-05
  • navicat支不支持oracle
    这篇文章主要介绍了navicat支不支持oracle,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。navicat支持oracle。Navicat...
    99+
    2022-10-18
  • navicat支不支持mongodb
    这篇文章将为大家详细讲解有关navicat支不支持mongodb,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Navicat for MariaDB 为 MariaDB数...
    99+
    2022-10-18
  • vuejs支不支持ie8
    这篇文章主要介绍了vuejs支不支持ie8,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 vuejs不支持ie8...
    99+
    2022-10-19
  • css3支不支持rgba
    这篇文章主要介绍“css3支不支持rgba”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css3支不支持rgba”文章能帮助大家解决问题。 ...
    99+
    2022-10-19
  • vue支不支持ajax
    这篇“vue支不支持ajax”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue支不支持a...
    99+
    2022-10-19
  • es6支不支持import
    这篇文章主要介绍了es6支不支持import的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇es6支不支持import文章都会有所收获,下面我们一起来看看吧。es6支持import。import语句用于导入由另一...
    99+
    2023-07-05
  • php7支不支持laravel5.3
    这篇文章主要讲解了“php7支不支持laravel5.3”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php7支不支持laravel5.3”吧!php7支持“laravel5.3”版本,因为...
    99+
    2023-06-30
  • thinkphp5.1支不支持extra
    本篇文章和大家了解一下thinkphp5.1支不支持extra。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。thinkphp5.1不支持extra,thinkphp5.1中config函数已经取消了extra的支持;可以...
    99+
    2023-07-04
  • vue支不支持ie6
    今天小编给大家分享一下vue支不支持ie6的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。vue不支持ie6;vue官方声明是...
    99+
    2023-07-04
  • ie8支不支持html5
    这篇“ie8支不支持html5”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ie8支不支持html5”文章吧。ie8不支持h...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作