在JS中,如果存在同名同参的方法,它会先调用哪一个?先看两个例子:

例1:

<html>
<head>
<title></title>
<script type="text/javascript">
function btnTest() {
$f1();
$f2();
} function A() {
alert();
}
var $f1 = A;
</script>
<script type="text/javascript">
function A() {
alert();
}
var $f2 = A;
</script>
</head> <body>
<form>
<div>
<input type="button" name="Testing" onclick="btnTest();" value="TEST" />
</div>
</form>
</body>
</html>

结果会弹出:1    2

例2:

<html>
<head>
<title></title>
<script type="text/javascript">
function btnTest() {
$f1();
$f2();
} function A() {
alert(1);
}
var $f1 = A; function A() {
alert(2);
}
var $f2 = A;
</script>
</head> <body>
<form>
<div>
<input type="button" name="Testing" onclick="btnTest();" value="TEST" />
</div>
</form>
</body>
</html>

结果会弹出:2    2

这和当前的代码段有很大关系,如果在两个同名同参的JS方法同一个代码段内部,则最后加载的方法会将前一个覆盖掉,反之,如果能在当前代码段找到对应的方法,就立即调用。

在JS中,如果存在同名不同参的方法,它会先调用哪一个?再看两个例子:

例1:

<html>
<head>
<title></title>
<script type="text/javascript">
function btnTest() {
var val = document.getElementById("txtVal").value;
if (val > 10) {
A();
}
else {
A(val);
}
} function A() {
alert(1);
} function A(val) {
alert(2);
alert(val);
} </script>
</head> <body>
<form>
<div>
Input Value(INT):<input type="text" id="txtVal"/><br>
<input type="button" name="Testing" onclick="btnTest();" value="TEST" />
</div>
</form>
</body>
</html>

例2:

<html>
<head>
<title></title>
<script type="text/javascript">
function btnTest() {
var val = document.getElementById("txtVal").value;
if (val > 10) {
A();
}
else {
A(val);
}
} function A() {
alert(1);
}
</script>
<script type="text/javascript">
function A(val) {
alert(2);
alert(val);
}
</script>
</head> <body>
<form>
<div>
Input Value(INT):<input type="text" id="txtVal"/><br>
<input type="button" name="Testing" onclick="btnTest();" value="TEST" />
</div>
</form>
</body>
</html>

测试结果:同名不同参的方法会用最后加载的方法会将前一个覆盖掉!

JavaScript 同名方法的处理的更多相关文章

  1. 页面 JavaScript 存在多个同名方法的调用分析

    在 JavaScript 中,不存在方法重载的概念,方法重载指的是可以定义不同类型的参数和参数个数的同名方法,然后可以按需调用. 如需实现按参数个数的不同去执行不同的方法主体,正确的做法是通过定义一个 ...

  2. es6 javascript对象方法Object.assign()

    es6 javascript对象方法Object.assign() 2016年12月01日 16:42:34 阅读数:38583 1  基本用法 Object.assign方法用于对象的合并,将源对象 ...

  3. JavaScript - reduce方法,reduceRight方法 (Array)

    JavaScript - reduce方法 (Array) 解释:reduce() 方法接收一个函数作为累加器(accumulator),数组 中的每个值(从左到右)开始合并,最终为一个值. 语法:a ...

  4. JavaScript slice() 方法

    JavaScript slice() 方法  JavaScript Array 对象 实例 在数组中读取元素: var fruits = ["Banana", "Oran ...

  5. JavaScript toLocaleString() 方法

    JavaScript toLocaleString() 方法 JavaScript Array 对象 定义和用法 把数组转换为本地字符串. 语法 arrayObject.toLocaleString( ...

  6. 关于JavaScript lastIndexOf() 方法 w3school.com.cn写的不一定全对

    关于JavaScript lastIndexOf() 方法 w3school.com.cn的表述是 定义和用法 lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的 ...

  7. javascript一些方法兼容

    javascript一些方法兼容 标签(空格分隔): javascript 方法收集 [TOC] Object.keys 参考地址 if (!Object.keys) Object.keys = fu ...

  8. 在Swift中使用JavaScript的方法和技巧

    本文作者Nate Cook是一位独立的Web及移动应用开发者,是继Mattt大神之后NSHipster的主要维护者,也是非常知名活跃的Swift博主,并且还是支持自动生成Swift在线文档的Swift ...

  9. 把C编译成javascript的方法

    把C编译成javascript的方法,便于嵌入到HTML5中 https://github.com/kripken/emscripten

随机推荐

  1. inux awk命令详解

    http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编 ...

  2. Servlet基础简单总结(上)

    Servlet基础一些简单总结(上): 1.Java Servlet是运行在Web服务器上的Java程序2.Java平台给Servlet开发者提供了强大的API/面向对象编程平台无关/强类型/垃圾回收 ...

  3. tensor

    初始化 z = torch.Tensor(,,,,) --可以创建多维数组.里面是随机的数. s = torch.Tensor(,):fill() --用1填充 t = torch.rand(,) m ...

  4. [webkit移动开发笔记]之如何去除android上a标签产生的边框

    去年年底,做完最后一个项目就可以开开心心回家,可是在测试阶段,发现了不少bug,为了不影响回家时间,加班加点也要解决这些问题,这里算是工作回忆,也算是工作的一点小总结. 在ios4+和android2 ...

  5. MUI 授权

    步骤1.打开 manifest.json 视图 在permissions 下添加   "Payment": {"description": "支付&q ...

  6. Android权限安全(1)自定义,检查,使用权限

    1.自定义权限: <!-- 定义自定义权限 --> <permission android:name="com.example.f6k5i8.checkpermission ...

  7. 工欲善其事必先利其器系列之:在VS里面折叠js代码

    之前用vs写js的时候经常因为js代码过长而且不能像cs文件里面的方法一样进行折叠而抓狂,直到在扩展库发现了这款插件有了它就可以把代码进行折叠了 插件地址

  8. UE4编程之C++创建一个FPS工程(二)角色网格、动画、HUD、子弹类

    转自:http://blog.csdn.net/u011707076/article/details/44243103 紧接上回,本篇文章将和大家一同整理总结UE4关于角色网格.动画.子弹类和HUD的 ...

  9. 判断浏览器是否为IE内核的最简单的方法

    没啥说的,直接贴代码,算是ie hack了. if (!+[1,]) { alert('is ie'); }

  10. Creating Dynamic LOV in Oracle D2k Forms

    Dynamic Lov is a good idea for the form where too many Lov requirement is there with different recor ...