- 浏览: 591926 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (300)
- Web前端 (27)
- Java疑难 (60)
- 面试 (59)
- 汇编语言 (1)
- 计算机组成原理 (2)
- 操作系统 (3)
- 计算机网络 (6)
- C/C++疑难 (9)
- SSH (2)
- Web开发 (15)
- 故障 (3)
- 软件开发 (16)
- Portal开发 (1)
- 后台开发 (6)
- 数据库 (35)
- 设计模式 (4)
- 数据结构与算法 (4)
- Linux (3)
- 项目管理 (10)
- 多线程 (12)
- 嵌入式 (9)
- 网络编程 (4)
- 架构设计 (20)
- 软件工具技巧 (7)
- 并行并发 (4)
- 窗口编程 (7)
- 串口编程 (0)
- Flex (2)
- 协议 (1)
- 通讯方式 (4)
- 性能分析优化 (5)
- 测试相关 (4)
- 海量数据处理 (2)
- JAVA核心技术 (10)
- SOA (3)
- 攻略规划 (1)
- 爬虫/搜索 (2)
- 正则表达式 (1)
- A Comparison Of NoSQL Database Management Systems And Models (1)
最新评论
-
charles751:
分析的很好!但有一点:只要同步组合操作就可以了,不一定非要sy ...
Vector 是线程安全的? -
S346618898:
core Java中有一段:Vector类对自己的所有可修改方 ...
Vector 是线程安全的? -
code_cj:
基本上明白了.但执行顺是否应该是/etc/profile -& ...
profile bashrc bash_profile之间的区别和联系 -
xd2008ck:
各自有各自的场景吧楼主不要太激进了
Vector 是线程安全的? -
zwt2001267:
写的不错,赞一个
Vector 是线程安全的?
学过JAVA的人对函数的覆盖和重载肯定是再熟悉不过了。
重载指两个或多个函数的参数类型,顺序和数量以及返回值不一样。
那javascript真的有这种特性么?
回答是JS中函数重名只会采用最后一个定义。
首先来看下下面的代码
代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
//展现结果
function showResult(result) {
var showDiv = document.getElementById('result');
showDiv.innerHTML = '';
showDiv.innerHTML = result;
};
//展现结果2
function showResult2(result) {
var showDiv = document.getElementById('result2');
showDiv.innerHTML = '';
showDiv.innerHTML = result;
};
//展现结果3
function showResult3(result) {
var showDiv = document.getElementById('result3');
showDiv.innerHTML = '';
showDiv.innerHTML = result;
};
//1th测试
//测试同名方法
function testFun() {
showResult('this is a function named \'testFun\' with no arguments.');
};
function testFun(arg) {
showResult('this is a function named \'testFun\' with one argument,the argument is '+arg);
};
//2th测试,交换两个函数的顺序
//测试同名方法
function testFun2(arg) {
showResult2('this is a function named \'testFun2\' with one argument,the argument is '+arg);
};
function testFun2() {
showResult2('this is a function named \'testFun2\' with no arguments.');
};
//3th测试,测试覆盖,同名同参数
function testFun3() {
showResult3('this is a function named \'testFun3\' first.');
};
function testFun3() {
showResult3('this is a function named \'testFun3\' second.');
};
//-->
</SCRIPT>
<BODY>
<hr>1th test <hr>
<div>
<input type='button' onclick='testFun();' value='function with no arguments'/></br>
<input type='button' onclick="testFun('test');" value='function with one argument test'/>
</div>
<div id="result"></div>
<hr>2th test <hr>
<div>
<input type='button' onclick='testFun2();' value='function with no arguments'/></br>
<input type='button' onclick="testFun2('test');" value='function with one argument test'/>
</div>
<div id="result2"></div>
<hr>3th test <hr>
<div>
<input type='button' onclick='testFun3();' value='test function share the same name and arguments.'/></br>
</div>
<div id="result3"></div>
</BODY>
</HTML>
首先按名为 function with no arguments 的按钮
页面的结果为 this is a function named 'testFun' with one argument,the argument is undefined
然后按名为 function with one argument test 的按钮
页面的结果为 this is a function named 'testFun' with one argument,the argument is test
然后按名为 function with no arguments 的按钮
页面的结果为 this is a function named 'testFun2' with no arguments.
然后按名为 function with one argument test 的按钮
页面的结果为 this is a function named 'testFun2' with no arguments.
从以上的测试中我们发现我们只是点换了两个函数的定义顺序,结果大不相同。
从上面的测试中我们可以得出结论: 重载的话,只要函数定义在下面就会覆盖上面的函数定义。
好了,接下来看覆盖。
按名为 test function share the same name and arguments. 的按钮
页面的结果为 this is a function named 'testFun3' second.
测试结果很明显,结论也是和上面相同的。
最终,我们得出结论:
方法重名,JS会以最后定义的函数作为函数体。当然这不包括JS中的继承中的覆盖。
发表评论
-
字符集与字符编码
2013-09-06 00:23 1233摘自http://blog.sina.com.cn ... -
网站前端和后台性能优化的34条宝贵经验和方法
2013-04-15 22:38 9931 减少HTTP请求数量 (Minimize HTTP Re ... -
javascript this关键字用法介绍
2013-04-12 12:05 974源于http://www.111cn.net/wy ... -
深度理解原型链
2013-04-09 15:15 2010摘自http://www.cnblogs.com/maoro ... -
前端开发必须知道的JS(一) 原型和继承
2013-04-09 12:58 852源自www.cnblogs.com/ljchow/ ... -
CSS样式表继承详解
2013-04-09 00:15 979什么是继承?要想了解css样式表的继承,我们先从文档树(HT ... -
如何优化JavaScript脚本的性能
2013-04-07 00:08 752循环 循环是很常用的一个控制结构,大部分东西要依靠它来完成 ... -
JavaScript中的隐式类型转换
2013-04-06 23:31 1146如果把通过函数或方法调用,明确的将某种类型转换成另一种类型称 ... -
给定时器settimeout、setInterval调用传递参数
2013-01-17 15:08 1125使window.setTimeout/window.set ... -
浅谈 js中parseInt函数的解析
2013-01-09 22:25 814首先还是从很热门的实例parseInt("09 ... -
round、floor与ceil
2013-01-09 22:16 1032round() 方法可把一个数字舍入为最接近的整数。 ... -
js浮点数精度问题
2013-01-09 21:10 21068大多数语言在处理浮点数的时候都会遇到精度问题,但是在JS ... -
jquery中,html、val与text三者属性取值的联系与区别
2012-01-14 18:49 1725jquery中,html、val与text三者属性取值的联系与 ... -
JS缓存图片实例
2011-12-16 01:02 5758JS缓存图片实例 现有JS功能越来强大了,很多基 ... -
iframe实现无刷新上传文件
2011-12-03 23:29 853[代码] [HTML]代码 view s ... -
js刷新页面代码
2010-10-16 11:15 963先来看一个简单的例子:下面以三个页面分别命名为frame.ht ... -
关于javaScript的IE与FireFox兼容性
2010-10-14 18:30 1388firefox没有window.event对象,其实这个本来不 ... -
js判断浏览器类型
2010-10-14 18:27 1136<!DOCTYPE html PUBLIC " ... -
FireFox与IE禁止右键单击
2010-10-14 14:00 1524<html><head><tit ... -
FireFox与IE事件禁止右键菜单写法的不同
2010-10-14 01:25 2300IE写法 <script> docum ...
相关推荐
学过JAVA的人对函数的覆盖和重载肯定是再熟悉不过了。 重载指两个或多个函数的参数类型,顺序和数量以及返回值不一样。 覆盖指两个或多个函数的参数类型,顺序和数量以及返回值完全一样。 那javascript真的有这种...
都知道在js中没有办法直接实现方法重载,因为在js中如果定义了多个名称相同,但参数个数不一样的方法,其实只有最后一个方法能被真正调用,其他的方法都被覆盖掉了。 但每一个函数都有一个特殊的参数arguments,利用...
大家都习惯了重载带来的便利。JavaScript有没有重载呢?有人会回答没有,因为函数会被覆盖;有人说有,我们可以模拟重载这 一操作。
本篇主要介绍普通函数、匿名函数、闭包函数 ...在Js中函数是没有重载,定义相同函数名、不同参数签名的函数,后面的函数会覆盖前面的函数。调用时,只会调用后面的函数。 var n1 = 1; function add(value1) { retur
将函数名想象为指针,也有助于理解为什么ECMAScript中没有函数重载的概念。如下例子: 代码如下: function addSomeNum(num) { return num+100; } function addSomeNum(num) { return num+200; } var result=...
前言 本文主要给大家介绍了关于...JavaScript没有重载这个概念,它仅依据函数名来区分函数。 后定义的同名函数覆盖之前的,与参数无关。 function test() { console.log("test"); } test(); //输出 "test arg0 + un
本文实例分析了JS重载实现方法。分享给大家供大家参考,具体如下: ...进而引出什么是重载:函数名相同,但是可以区分出来,想用哪个就用哪个,而不是后面的同名函数覆盖前面的 二、怎么用? argume
在Js中函数是没有重载,定义相同函数名、不同参数签名的函数,后面的函数会覆盖前面的函数。调用时,只会调用后面的函数。 代码如下: var n1 = 1; function add(value1) { return n1 + 1; } alert(add(n1&...
超越Javascript功能超载覆盖实用程序。 该实用程序独特的界面将使您更容易使用叠加功能。快速开始使用npm安装。 > npm install overlode 或下载源文件 。 编写您的第一个叠加函数。 在这里,我们使用帮助进行检查。 ...
假如 我这样定义: 代码如下: function getDate(){…..} function getDate(date){…..} 那么后一个方法将覆盖前一个,虽然不报错。 但是我们确实是可以实现重载的,如果你用过jQuery,你就会深有体会,比如$(“#btn”...
上几节讲了 JavaScript 面向对象之命名空间 、 javascript 面向对象的JavaScript类 与 JavaScript 面向对象的之私有成员和公开成员 ,大家可以先看上面的再继续往下看。假如 我这样定义: 代码如下: function ...
重载:由于Javascript是弱类型的语言,而且又支持可变参数,当我们定义重载方法的时候,解释器无法通过参数类型和参数个数来区分不同的重载方法,因此方法重载是不被支持的!当先后定义了同名的方法的时候,后定义...
Vue.js为最常用的两个指令v-bind和v-on提供了缩写方式。v-bind指令可以缩写为一个冒号,v-on指令可以缩写为@符号。 全部的按键别名: .enter .tab .delete (捕获 "删除" 和 "退格" 键) .esc .space .up .down .left ...
-为所有控件增加Focus(覆盖Control默认的Focus函数)和GetFocusReference函数。 -增加示例(other/custom_postback.aspx)(feedback:thebox)。 -如何自定义Javascript脚本和C#处理函数来响应键盘事件。 -为Tree...
-为所有控件增加Focus(覆盖Control默认的Focus函数)和GetFocusReference函数。 -增加示例(other/custom_postback.aspx)(feedback:thebox)。 -如何自定义Javascript脚本和C#处理函数来响应键盘事件。 -为Tree...
捆绑Wbepack JS文件并热重载客户端代码 编写测试并检查代码覆盖率。 因为我们使用React,Redux,Node.js和Socket.io,所以我们必须定义3种单元测试: 像redux文档+ chai-equal-jsx解释的那样进行React Redux,而...
手头在维护一个比较老的项目,由于页面的重组,一些不同页面的 js 被加载到了同一个页面,导致一个页面里可能有一个以上的 [removed] ,这样做的后果就是前面的回调函数会被后面的覆盖掉。 上网搜了一下,绝大部分的...
ajax的使用,在js中已经封装好的类库。在真实项目中很有用的一个ajax
与Wbepack JS文件捆绑在一起并热重载客户端的代码 编写测试并检查代码覆盖率。 因为我们使用React,Redux,Node.js和Socket.io,所以我们必须定义3种单元测试: 像redux文档+ chai-equal-jsx解释的那样进行React ...