本文实例分析了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方法的重载
# 面向对象
# 相关内容
# 什么时候
# 可以用
# 遍历
# 一大
# 数据结构
# 给大家
# 很重要
# 重写
# 就用
# 更多关于
# 时要
# 改了
# 想用
# 所述
# 程序设计
# 编程语言
# 又该
# 而不是
相关文章:
制作公司内部网站有哪些,内网如何建网站?
Swift中switch语句区间和元组模式匹配
如何打造高效商业网站?建站目的决定转化率
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
建站之星云端配置指南:模板选择与SEO优化一键生成
太原网站制作公司有哪些,网约车营运证查询官网?
如何在阿里云虚拟主机上快速搭建个人网站?
如何用景安虚拟主机手机版绑定域名建站?
电商平台网站制作流程,电商网站如何制作?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
北京的网站制作公司有哪些,哪个视频网站最好?
如何通过虚拟机搭建网站?详细步骤解析
,网页ppt怎么弄成自己的ppt?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
如何快速搭建高效服务器建站系统?
c# 在ASP.NET Core中管理和取消后台任务
如何快速搭建响应式可视化网站?
公司门户网站制作流程,华为官网怎么做?
如何通过远程VPS快速搭建个人网站?
建站之星如何配置系统实现高效建站?
内部网站制作流程,如何建立公司内部网站?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
代刷网站制作软件,别人代刷火车票靠谱吗?
如何在IIS7上新建站点并设置安全权限?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
如何续费美橙建站之星域名及服务?
建站之星如何优化SEO以实现高效排名?
装修招标网站设计制作流程,装修招标流程?
如何做静态网页,sublimetext3.0制作静态网页?
西安大型网站制作公司,西安招聘网站最好的是哪个?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
建站之星安装失败:服务器环境不兼容?
独立制作一个网站多少钱,建立网站需要花多少钱?
如何在云虚拟主机上快速搭建个人网站?
如何在阿里云域名上完成建站全流程?
如何在万网ECS上快速搭建专属网站?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
建站VPS配置与SEO优化指南:关键词排名提升策略
北京制作网站的公司,北京铁路集团官方网站?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
C++中引用和指针有什么区别?(代码说明)
创业网站制作流程,创业网站可靠吗?
制作销售网站教学视频,销售网站有哪些?
建站之星下载版如何获取与安装?
如何选择靠谱的建站公司加盟品牌?
建站之星备案是否影响网站上线时间?
如何基于云服务器快速搭建网站及云盘系统?
如何选择最佳自助建站系统?快速指南解析优劣
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何用wdcp快速搭建高效网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。