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 操作select标签实现代码
May 14 Javascript
javascript学习笔记(二) js一些基本概念
Jun 18 Javascript
动态加载脚本提升javascript性能
Feb 24 Javascript
jQuery实现带动画效果的二级下拉导航方法
Mar 11 Javascript
JS动态改变浏览器标题的方法
Apr 06 Javascript
AngularJS基础 ng-open 指令简单实例
Aug 02 Javascript
深入浅出讲解ES6的解构
Aug 03 Javascript
详解VUE 定义全局变量的几种实现方式
Jun 01 Javascript
ES6入门教程之变量的解构赋值详解
Apr 13 Javascript
微信小程序实现watch监听
Jun 04 Javascript
搭建vscode+vue环境的详细教程
Aug 31 Javascript
JS轻量级函数式编程实现XDM三
Jun 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
php开发工具之vs2005图解
2008/01/12 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
PHP 7.4 新语法之箭头函数实例详解
2019/05/09 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
Javascript下IE与Firefox下的差异兼容写法总结
2010/06/18 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
如何使用Javascript中的this关键字
2020/05/28 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
python操作mysql数据库
2017/03/05 Python
Python登录注册验证功能实现
2018/06/18 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
Python文件读写常见用法总结
2019/02/22 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
Python 图片处理库exifread详解
2021/02/25 Python
CSS3 实现雷达扫描图的示例代码
2020/09/21 HTML / CSS
科尔士百货公司官网:Kohl’s
2016/07/11 全球购物
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
行政内勤岗位职责
2014/04/07 职场文书
促销活动总结
2014/04/28 职场文书
安全先进个人材料
2014/12/29 职场文书
mysql 索引合并的使用
2021/08/30 MySQL