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学习笔记(二) js对象
Oct 25 Javascript
固定表格行列(expression)在IE下适用
Jul 25 Javascript
从零学JS之你需要了解的几本书
May 19 Javascript
JavaScript支持的最大递归调用次数分析
Jun 24 Javascript
JavaScript中的原始值和复杂值
Jan 07 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
Feb 17 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
May 05 Javascript
jQuery简单实现根据日期计算星期几的方法
Jan 09 jQuery
iview的table组件自带的过滤器实现
Jul 12 Javascript
vue实现div单选多选功能
Jul 16 Javascript
vue 使用post/get 下载导出文件操作
Aug 07 Javascript
javascript使用正则表达式实现注册登入校验
Sep 23 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
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
一篇文章带你从零快速上手Rollup
2020/09/07 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
python实现随机梯度下降(SGD)
2020/03/24 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
详解python破解zip文件密码的方法
2020/01/13 Python
python_mask_array的用法
2020/02/18 Python
keras多显卡训练方式
2020/06/10 Python
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
几个Linux面试题笔试题
2012/12/01 面试题
施工安全责任书
2014/04/14 职场文书
第一批党的群众路线教育实践活动总结报告
2014/07/03 职场文书
技术经济专业求职信
2014/09/03 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
Python+pyaudio实现音频控制示例详解
2022/07/23 Python