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 相关文章推荐
JS 模态对话框和非模态对话框操作技巧汇总
Apr 15 Javascript
js实现点击文本框显示日期选择器特效代码分享
May 21 Javascript
js事件处理程序跨浏览器解决方案
Mar 27 Javascript
三种方式实现瀑布流布局
Feb 10 Javascript
详解Vue 实例中的生命周期钩子
Mar 21 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
Apr 24 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
May 08 Javascript
使用vue-router在Vue页面之间传递数据的方法
Jul 15 Javascript
vue开发拖拽进度条滑动组件
Sep 21 Javascript
JS使用正则表达式实现常用的表单验证功能分析
Apr 30 Javascript
js实现点击烟花特效
Oct 14 Javascript
Node与Python 双向通信的实现代码
Jul 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
Protoss热键控制
2020/03/14 星际争霸
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
php读取本地json文件的实例
2018/03/07 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
浅谈js中的闭包
2015/03/16 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
jQuery的框架介绍
2016/05/11 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
2019/05/10 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
Python中的包和模块实例
2014/11/22 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
Python实现八皇后问题示例代码
2018/12/09 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
C#怎么让一个窗口居中显示?
2015/10/20 面试题
介绍一下gcc特性
2012/01/20 面试题
银行服务感言
2014/03/01 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL