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 相关文章推荐
jquery 添加节点的几种方法介绍
Sep 04 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
Jan 26 Javascript
js中的内部属性与delete操作符介绍
Aug 10 Javascript
理解Javascript的call、apply
Dec 16 Javascript
jQueryUI DatePicker 添加时分秒
Jun 04 Javascript
AngularJs Understanding the Model Component
Sep 02 Javascript
微信小程序网络请求的封装与填坑之路
Apr 01 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
Sep 02 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
Dec 20 Javascript
vue中rem的配置的方法示例
Aug 30 Javascript
浅谈JS的原型和继承
May 08 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
Jun 18 jQuery
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 GD 图像处理组件的常用函数总结
2010/04/28 PHP
discuz目录文件资料汇总
2014/12/30 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
2007/01/09 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
用html+css+js实现的一个简单的图片切换特效
2014/05/28 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
2015/05/06 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
AngularJS入门教程引导程序
2016/08/18 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
在Python下尝试多线程编程
2015/04/28 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
英国皇家造币厂:The Royal Mint
2018/10/05 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
路政管理专业推荐信
2013/11/11 职场文书
高中化学教学反思
2016/02/22 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android