html中函数传递多个值,JavaScript 实战开发经验!函数多参数传参技巧

HTML5学堂-码匠:掌握JavaScript代码的你,一定编写封装过函数,为了提升函数的控制性,必不可少的就是参数,必选可选的一大堆参数罗列出来,函数调用貌似变得麻烦起来~~~

Tips:

必选参数指的是必须要传入实参的参数;

可选参数在函数中有默认值,如有传入实参,则取实参的值,如果没有传入实参,则使用默认值。

函数的众多参数问题

当一个函数既有必选参数,又有可选参数,在定义函数时,我们可能采取的方式是:无论参数是可选参数还是必选参数,都将参数罗列下来(通常按照先必选再可选的顺序)

但是这样的罗列方法,会导致一些问题的产生!

举例来说:有一个功能函数h5course,name和domain为其必选参数,而minAPP和book为其可选参数,而我们如此定义函数:

bVWGnS?w=640&h=130

此时,调用函数,需要传入name、domain、book这三个参数,那么,问题来了!

由于在函数定义当中,book的参数位置位于minApp参数之后,在调用函数时,如果希望为book这个参数传入值,就必须按照如下方式进行书写:

h5course('name参数值', 'domain参数值', '', 'book参数值');

不难发现,当前第三个参数的处理就变得麻烦起来。于是乎,可能很多人会在函数中通过添加if判断,来进行参数控制 ——

bVWGn2?w=640&h=274

此时仍然存在这样两个问题:

第一,函数的调用者必须要了解函数内部的参数判断方式,才能够正确书写“不需要的可选参数”

第二,在调用多个可选参数的函数时,调用代码会变得很麻烦(当然你可以为函数添加注释,降低使用时的难度)

更好的函数参数书写方法!

面对如上的这些问题,下面这种方法,你值得拥有!

用对象替代掉原有的单个参数传递方式

函数内部使用arguments替换原有的形参

利用for-in循环,修改可选参数的默认值

一起来用此方法调整一下h5course函数

bVWGon?w=640&h=678

在此段代码当中,传入了三个参数

for-in循环当中,为defaultValue添加了name和domain的值,并修改了minApp的内容

函数调用时,参数的处理会变得更方便简单,但是也要注意,为了让使用者清晰了解哪些参数是必须的,建议在函数前面添加合理注释!

来个“智力”测试?

生活艰辛,代码不易,但,不要忘记微笑!

bVWGop?w=640&h=674

bVVTIk?w=640&h=92

bVWGov?w=640&h=242

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件工程学习笔记(考试版)

软 件 工 程 笔 记 第一章 一个软件产品必须由一个完整的配置组成,软件配置主要包括:程序,数据及相关文档。程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当的处理信息的数据结构;文档是开发使…

印象笔记编辑pdf_笔记软件使用体验(至2020.03)

几年的时间,从OneNote到为知笔记,再到印象笔记,再回到为知笔记和OneNote,用下来感觉各有优势,也有不爽的地方。 早年间OneNote的同步很有问题,一次同步冲突导致失去了几乎所有笔记本。心灰意冷之下就离开了…

C#获取当前程序运行路径的方法集合

2019独角兽企业重金招聘Python工程师标准>>> // 获取当前进程的完整路径,包含文件名(进程名) Console.WriteLine(GetType().Assembly.Location "\tGetType().Assembly.Location"); // 获取新的 Process 组件并将其与当前活动的进程关联的主模…

Hive thrift服务--beeline使用

hive提供了thrift服务,只要客户端符合thrift标准就可以与它对接。 这样可以以在一台服务器上启动一个hive,其他用户通过thrift访问hive。 hive自带了一个thrift的客户端-------bin/beeline 启动方式: 1、hadoop的core-site.xml增加配置 &l…

vfp控制excel使用sort_使用Python根据索引合并Excel表

有两张不同大小的excel表表1:字典的选项值,2118行表2:字典名称,405行表1和表2有共同的列.现在需要根据共同的列,以表1为底,将表2的值对应添加到表1的每一行。下面是代码:1.加载相关的库import n…

Redis详解(三)

一、Redis集群介绍 Clustering:redis 3.0之后进入生产环境分布式数据库,通过分片机制来进行数据分布,clustering 内的每个节点,仅有数据库的一部分数据;去中心化的集群:redis集群中的每一个节点,都可以作为集群的接入节…

win10计算机从桌面消失了,Windows10家庭版程序窗口在桌面上消失了解决方法

相信大家对于电脑非常不陌生吧,当你遇到Win10程序窗口桌面上消失了怎么办这个问题该怎么解决吗?不知道了吧,接下来小编就以程序窗口时所遇到的Win10程序窗口桌面上消失了怎么办问题来给大家讲讲,看看小编是如何帮大家解决Win10程序…

MSSQL-最佳实践-如何监控备份还原进度

title: MSSQL 最佳实践 如何监控备份还原进度 author: 风移 摘要 本期月报是SQL Server备份还原专题分享系列的第六期,打算分享给大家如何监控SQL Server备份还原进度。 场景引入 由于SQL Server备份还原操作是重I/O读写操作,尤其是当数据库或数据库备…

抢车位app下载_太方便了!有了这个APP,找车位再也不用“兜圈子”了

对于不少有车一族来说,决定出门是否开车的重要因素之一,那就是目的地是不是好停车,因为找车位可真是一件很头疼的事,不过未来,满街找停车位的尴尬情况将会越来越少,近日,镇江智慧停车平台正式上…

一共81个,开源大数据处理工具汇总

查询引擎 一、Phoenix 贡献者::Salesforce 简介:这是一个Java中间层,可以让开发者在Apache HBase上执行SQL查询。Phoenix完全使用Java编写,代码位于GitHub上,并且提供了一个客户端可嵌入的JDBC驱动。 Phoen…

html5怎么删除样式,css怎么删除一个样式

css删除一个样式的方法:首先创建一个HTML示例文件;然后给div添加css样式;最后通过“removeClass()”方法从被选元素删除一个或多个类即可。本教程操作环境:windows7系统、HTML5&&CSS3版、Dell G3电脑。CSS添加样式、删除样…

sqlserver 字符串转化数值函数_Excel常见函数用法(TEXT函数)

基本语句:=TEXT(数值,文本格式) 用法说明:TEXT函数可通过格式代码对数字应用格式,进而更改数字的显示方式。其中,参数①是我们想要改变格式的数值,它可以是文本,也可以是数字;而参数②就是我们想要参数①最终变成的格式,它的作用原理和自定义数字格式一致,基本用法共…

Flume概述

官网 http://flume.apache.org/ 介绍 Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中。一般的采集需…

mastercam加工报表生成_听说最厉害的工程师才敢这样玩五轴加工?

今天让我们一起来看看五轴有些什么接地气的玩法:侧刃加工(此图非动图)相较使用刀具底刃加工,利用刀具侧刃加工可以得到更加光滑的加工表面。适用于航空航天工业中复杂型腔工件的精加工。Mastercam提供专用功能可有效防止刀具和零件型腔底部出现过切&…

Flume安装(单节点)

Flume单节点的安装非常简单。 1、下载 2、解压 3、配置环境变量FLUME_HOME 4、flume-env.sh配置JAVA_HOME 具体步骤 下载 http://flume.apache.org/download.html 解压 tar -zxvf apache-flume-1.7.0-bin.tar.gz 配置FLUME_HOME root 用户或者 su root vi /etc/pro…

Flume实战监听网络端口

具体的配置解释见官网 http://flume.apache.org/FlumeUserGuide.html#flume-sources 1、flume安装目录下新建文件夹 example 2、在example下新建文件 netcat-logger.conf内容如下:#name the components on this agent a1.sources r1 a1.sinks k1 a1.channels…

滑动关机代码bat_BAT面试算法进阶--(2) 无重复字符的最长子串(滑动法优化+ASCII码法)...

一.算法题题目Given a string, find the length of the longest substring without repeating characters.ExampleGiven "abcabcbb", the answer is "abc", which the length is 3.Given "bbbbb", the answer is "b", with the length…

jpa findone怎么用_Jpa VS MyBatis,你用哪个?

经常看到有小伙伴在讨论 JPA 和 MyBatis 这两个孰优孰劣的问题,其实松哥觉得这是一个伪命题,没必要为这种问题争个面红耳赤,每种框架有它存在的道理,也有各自擅长的事情,今天松哥就和大家来聊聊这两个框架,…

python正则表达式中的转义字符_python 正则表达式之转义字符

最近在整理python相关的知识,使用python对网站进行爬取数据的时候,需要使用到转义字符,之前对转义字符理解一直比较模糊,并且在python中还有一个叫原生字符r。所以通过网上调查资料对该内容进行整理,已备不时之需。 字…

计算机控制系统a卷-答案,计算机控制系统2010-2011年试题A答案

济南大学2010 ~2011学年第一学期课程考试试卷(A卷)4、振铃现象:(虽然闭环系统输出较快地趋向于稳态值)……课 程 计算机过程控制系统 授课教师 王小平 数字调节器输出u(kT)以2T为周期上下摆动。………考试时间 2010年 12 月 30日 考试班级 … ……学 号 …