JavaScript中的函数重载深入理解


Posted in Javascript onAugust 04, 2014

在JavaScript中有一种特殊的数据类型---Function类型,JavaScript的每个函数都是Function类型的实例。由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定。

<pre name="code" class="html">function sum(num1,num2) 
{ 
return num1 +num2; 
} 

alert(sum(10,10)); //20 
var other = sum; 
alert(other(10,10)); //20 
sum = null; 
alert(other(10,10)); //20

将函数名作为指向函数的指针,有助于理解为什么ECMAScript中没有函数重载的概念

function sum(num1) 
{ 
return num1 +100; 
} 
function sum(num1) 
{ 
return num1 +200; 
} 
alert(sum(200)); //400

虽然声明了两个同名函数,但是后面的函数覆盖了前面的函数,以上等价于下面的代码

function sum(num1) 
{ 
return num1 +100; 
} 
sum = function(num1) 
{ 
return num1 +200; 
} 
alert(sum(200)); //400

在创建第二个函数时,实际上覆盖了引用的第一个函数变量sum

Javascript 相关文章推荐
根据地区不同显示时间的javascript代码
Aug 13 Javascript
jquery 多行滚动代码(附详细解释)
Jun 17 Javascript
webapp框架AngularUI的demo改造之路
Dec 21 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
Feb 28 Javascript
javascript使用输出语句实现网页特效代码
Aug 06 Javascript
javascript日期格式化方法小结
Dec 17 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
js仿3366小游戏选字游戏
Apr 14 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
May 24 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
Aug 25 Javascript
原生JS封装animate运动框架的实例
Oct 12 Javascript
js中int和string数据类型互相转化实例
Jan 16 Javascript
window.print打印指定div指定网页指定区域的方法
Aug 04 #Javascript
jQuery 删除或是清空某个HTML元素示例
Aug 04 #Javascript
js实现正方形颜色从下往上升的效果
Aug 04 #Javascript
与Math.pow 相反的函数使用介绍
Aug 04 #Javascript
简单易用的倒计时js代码
Aug 04 #Javascript
javascript中with()方法的语法格式及使用
Aug 04 #Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
Aug 04 #Javascript
You might like
虫族 Zerg 热键控制
2020/03/14 星际争霸
php cli 方式 在crotab中运行解决
2010/02/08 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
PHP中如何调用webservice的实例参考
2013/04/25 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
2019/04/27 PHP
JQuery插件开发示例代码
2013/11/06 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
详解AngularJS过滤器的使用
2016/03/11 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
webpack4简单入门实例
2018/09/06 Javascript
layui表单验证select下拉框实现验证的方法
2019/09/05 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
python实现发送邮件功能代码
2017/12/14 Python
python操作文件的参数整理
2019/06/11 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
适用于所有创业者的创业计划书
2014/02/05 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
毕业班工作总结
2015/08/10 职场文书
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA