本文实例分析了JS重载实现方法。分享给大家供大家参考,具体如下:

重载是面向对象语言里很重要的一个特性,JS中没有真正的重载,是模拟出来的(因为js是基于对象的编程语言,不是纯面向对象的,它没有真正的多态:如继承、重载、重写)
一、什么时候用重载?
举例:
function getDataTop10(){
alert("返回前10条数据");
}
后来需求改了,需要获得20条数据,而getDataTop10又被很多函数调用了,整体替换可以但麻烦,这时可以用重载
进而引出什么是重载:函数名相同,但是可以区分出来,想用哪个就用哪个,而不是后面的同名函数覆盖前面的
二、怎么用?
arguments:Js里的一个内置对象,包含了调用者传递的实际参数(函数声明时定义的参数个数不影响)
function getData(){
alert("返回所有数据");
}
function getDataTop(num){
alert("返回前"+num+"数据");
}
function getDataLimit(num1,num2){
alert("返回前"+num1+"-"+num2+"数据");
}
function getDste(){
var num=arguments.length;
if(!num){
getData();
}
else if(num==1){
getDataTop(arguments[0]);
}
else if(num==2){
getDataLimit(arguments[0],arguments[1]);
}
}
getDste(5)
当参数很多时要写一大串,遂可以改进
function getData(){
alert("返回所有数据");
}
function getDataTop(num){
alert("返回前"+num+"数据");
}
function getDataLimit(num1,num2){
alert("返回前"+num1+"-"+num2+"数据");
}
function getDste(){
var num=arguments.length;
if(!num){
getData();
}
else if(num==1){
getDataTop.apply(this,arguments);
}
else if(num==2){
getDataLimit.apply(this,arguments);
}
}
getDste(5)
如果参数个数相同,类型不同,又该如何
function getData(){
alert("返回所有数据");
}
function getDataTop(num){
alert("返回前"+num+"数据");
}
function getDataLimit(num1,num2){
alert("返回前"+num1+"-"+num2+"数据");
}
function getDataByType(type){
alert("将返回"+type+"类型的数据");
}
function getDste(){
var num=arguments.length;
if(!num){
getData();
}
else if(num==1){
if(typeof arguments[0]=="number"){
getDataTop.apply(this,arguments);
}
else{
getDataByType.apply(this,arguments);
}
}
else if(num==2){
getDataLimit.apply(this,arguments);
}
}
getDste("array")
三、好处
有利于合作开发
四、坏处
“实现”太勉强,如果参数过多,就要很多if语句,显得代码很乱
更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# JS
# 重载
# JS模拟实现方法重载示例
# JavaScript中的方法重载实例
# javascript中通过arguments参数伪装方法重载
# js面向对象编程之如何实现方法重载
# js中方法重载如何实现?以及函数的参数问题
# 有关于JS构造函数的重载和工厂方法
# 添加JavaScript重载函数的辅助方法2
# 为JavaScript添加重载函数的辅助方法
# JavaScript 的方法重载效果
# 妙用缓存调用链实现JS方法的重载
# 面向对象
# 相关内容
# 什么时候
# 可以用
# 遍历
# 一大
# 数据结构
# 给大家
# 很重要
# 重写
# 就用
# 更多关于
# 时要
# 改了
# 想用
# 所述
# 程序设计
# 编程语言
# 又该
# 而不是
相关文章:
如何在万网开始建站?分步指南解析
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
建站之星如何通过成品分离优化网站效率?
完全自定义免费建站平台:主题模板在线生成一站式服务
建站之星伪静态规则如何正确配置?
Python文件管理规范_工程实践说明【指导】
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
存储型VPS适合搭建中小型网站吗?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
音乐网站服务器如何优化API响应速度?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
建站主机无法访问?如何排查域名与服务器问题
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
网站制作说明怎么写,简述网页设计的流程并说明原因?
在线制作视频的网站有哪些,电脑如何制作视频短片?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何通过VPS建站实现广告与增值服务盈利?
建站与域名管理如何高效结合?
建站之星价格显示格式升级,你的预算足够吗?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
如何制作网站标识牌,动态网站如何制作(教程)?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
建站之星导航如何优化提升用户体验?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
详解jQuery中基本的动画方法
如何用wdcp快速搭建高效网站?
建站之星展会模板:智能建站与自助搭建高效解决方案
建站之星代理如何优化在线客服效率?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
济南网站制作的价格,历城一职专官方网站?
如何在VPS电脑上快速搭建网站?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
视频网站制作教程,怎么样制作优酷网的小视频?
如何做静态网页,sublimetext3.0制作静态网页?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
营销式网站制作方案,销售哪个网站招聘效果最好?
建站之星代理商如何保障技术支持与售后服务?
如何在IIS中新建站点并解决端口绑定冲突?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
中山网站推广排名,中山信息港登录入口?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
移民网站制作流程,怎么看加拿大移民官网?
C++中引用和指针有什么区别?(代码说明)
如何用免费手机建站系统零基础打造专业网站?
如何挑选优质建站一级代理提升网站排名?
高防服务器租用指南:配置选择与快速部署攻略
如何用好域名打造高点击率的自主建站?
*请认真填写需求信息,我们会在24小时内与您取得联系。