使用JSON作为函数的参数的优缺点


Posted in Javascript onOctober 27, 2016

一直对json不太懂,最近看了一些介绍才发现,原来这个东西这么好用,下面就为大家介绍一下

1、我们可以随时为一个函数添加/删除参数或在任意参数位置添加新参数,而不会像传统参数一样必须按照规定的顺序书写,而且每次添加或删除函数某个参数都要函数内容进行修改。而使用JSON作为参数可以不用考虑参数顺序。
看下面代码演示:

<script type="text/javascript">
 <!--
 //普通方法
 function commonArg(name,age,desc){
  var userinfo="name: "+name+","+"age: "+age+"\ndescription: "+desc;
  alert(userinfo);
 }
 commonArg("yemoo",22,"a boy!")//每次调用都必须按照规定的参数顺序书写,如果写成commonArg(22,"yemoo","desc")则返回信息就不对,每次都必须记忆每个参数意义及顺序
 
 //JSON参数法
 function jsonArg(info){
  var userinfo="name: "+info.name+"\tage: "+info.age+"\ndescription: "+info.desc;
  alert(userinfo);
 }
 jsonArg({name:"blue",age:22,desc:"a gril?"});
 jsonArg({desc:"not a people!",name:"sss",age:0});
 //参数位置可以随意写
 //-->
 </script>

普通函数缺点很明显:必须记忆参数意义和顺序。而使用JSON的方法则不需要。

2、使用者对函数的调用非常方便,特别是在只需要传入其中几个或一个参数时。
看下面的代码演示:

<script type="text/javascript">
 <!--
 //普通方法
 function commonArg(name,age,desc){
  var userinfo="name: "+(name||"empty")+"\tage: "+(age||0)+"\ndescription: "+desc||"empty";
  alert(userinfo);
 }
 //当只需要设定后面的参数时前面每个参数都需要设置为null
 commonArg("tempUser");
 commonArg(null,null,"a boy!");
 commonArg(null,20);
 
 //JSON参数法
 function jsonArg(info){
  var userinfo="name: "+(info.name||"empty")+"\tage: "+(info.age||0)+"\ndescription: "+(info.desc||"empty");
  alert(userinfo);
 }
 //每次只需要设置需要设定参数项
 jsonArg({name:"tempUser"});
 jsonArg({desc:"a boy!"});
 jsonArg({age:20});
 //-->
 </script>

JSON方法优点很明显:每次只需传入需要的参数即可,而不用考虑其他参数。
JSON真是一个好用的东西,不用在ajax方面还是在js的其他方面都体现了其方便灵活的特性,的确应该好好去挖掘和学习json。

Javascript 相关文章推荐
面向对象的编程思想在javascript中的运用上部
Nov 20 Javascript
js获取指定日期前后的日期代码
Aug 20 Javascript
table行随鼠标移动变色示例
May 07 Javascript
理解javascript中的回调函数(callback)
Sep 02 Javascript
jquery实现炫酷的叠加层自动切换特效
Feb 01 Javascript
JS实现仿微博可关闭弹出层效果
Sep 21 Javascript
实现隔行换色效果的两种方式【实用】
Nov 27 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
Dec 26 Javascript
关于js中的鼠标事件总结
Jul 11 Javascript
JS实现点击循环切换显示内容的方法
Oct 19 Javascript
JQuery Ajax动态加载Table数据的实例讲解
Aug 09 jQuery
vue中 this.$set的使用详解
Nov 17 Vue.js
Javascript 获取鼠标当前的位置实现方法
Oct 27 #Javascript
JavaScript实现使用Canvas绘制图形的基本教程
Oct 27 #Javascript
js 实现一些跨浏览器的事件方法详解及实例
Oct 27 #Javascript
jQuery 检查某个元素在页面上是否存在实例代码
Oct 27 #Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
Oct 27 #Javascript
简单理解vue中el、template、replace元素
Oct 27 #Javascript
深入理解JavaScript定时机制
Oct 27 #Javascript
You might like
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
如何在PHP中使用Oracle数据库(2)
2006/10/09 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
Node.js简单入门前传
2017/08/21 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
2018/06/14 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
python改变日志(logging)存放位置的示例
2014/03/27 Python
python实现聚类算法原理
2018/02/12 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
在python中利用opencv简单做图片比对的方法
2019/01/24 Python
使用python PIL库实现简单验证码的去噪方法步骤
2019/05/10 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
高二历史教学反思
2014/01/25 职场文书
职称评定自我鉴定
2014/03/18 职场文书