JavaScript 同名方法的处理
在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 同名方法的处理的更多相关文章
- 页面 JavaScript 存在多个同名方法的调用分析
在 JavaScript 中,不存在方法重载的概念,方法重载指的是可以定义不同类型的参数和参数个数的同名方法,然后可以按需调用. 如需实现按参数个数的不同去执行不同的方法主体,正确的做法是通过定义一个 ...
- es6 javascript对象方法Object.assign()
es6 javascript对象方法Object.assign() 2016年12月01日 16:42:34 阅读数:38583 1 基本用法 Object.assign方法用于对象的合并,将源对象 ...
- JavaScript - reduce方法,reduceRight方法 (Array)
JavaScript - reduce方法 (Array) 解释:reduce() 方法接收一个函数作为累加器(accumulator),数组 中的每个值(从左到右)开始合并,最终为一个值. 语法:a ...
- JavaScript slice() 方法
JavaScript slice() 方法 JavaScript Array 对象 实例 在数组中读取元素: var fruits = ["Banana", "Oran ...
- JavaScript toLocaleString() 方法
JavaScript toLocaleString() 方法 JavaScript Array 对象 定义和用法 把数组转换为本地字符串. 语法 arrayObject.toLocaleString( ...
- 关于JavaScript lastIndexOf() 方法 w3school.com.cn写的不一定全对
关于JavaScript lastIndexOf() 方法 w3school.com.cn的表述是 定义和用法 lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的 ...
- javascript一些方法兼容
javascript一些方法兼容 标签(空格分隔): javascript 方法收集 [TOC] Object.keys 参考地址 if (!Object.keys) Object.keys = fu ...
- 在Swift中使用JavaScript的方法和技巧
本文作者Nate Cook是一位独立的Web及移动应用开发者,是继Mattt大神之后NSHipster的主要维护者,也是非常知名活跃的Swift博主,并且还是支持自动生成Swift在线文档的Swift ...
- 把C编译成javascript的方法
把C编译成javascript的方法,便于嵌入到HTML5中 https://github.com/kripken/emscripten
随机推荐
- 安装python-devel 在升级到python2.7之后
分别执行如下命令: # yum update # yum install centos-release-SCL # yum search all python27 在搜索出的列表中发现python27 ...
- Unix网络编程--卷一:套接字联网API
UNIX网络编程--卷一:套接字联网API 本书面对的读者是那些希望自己编写的程序能够使用成为套接字(socket)的API进行彼此通信的人. 目录: 0.准备环境 1.简介 2.传输层:TCP.UD ...
- SharePoint自动化系列——Select-option标签的定位方法总结
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ C#中通过Selenium定位页面上的select-option结构,尝试了以下几种方法,均没有生 ...
- UML建模的要点总结
预备知识: 一.UML的特性与发展现状 UML是一种Language(语言) UML是一种Modeling(建模)Language UML是Unified(统一)Modeling Language 1 ...
- JavaScript的数据类型
JavaScript的数据类型 1.JavaScript的数据类型包括:字符串.数值.布尔.数组.对象.Null.Undefined. 2.JavaScript拥有动态类型,这以为着同一个变量可用作不 ...
- android 串口调试
在usb调试过程中,都会选择串口查看log,更希望在串口中输入命令查看相关状态.但是一般情况下串口调试时 进程用户是shell,即使你在adb shell下是root用户. 暴力方法是在 adroid ...
- HTML系列(HTMl+CSS+JavaScript+Jquery)--un
HTML 指超文本标签语言. 点击查看更详细的HTML内容 包括:一.基本标签;二.常用标签;三.表单<form></form>;四.表格<table></t ...
- 2016年2月18日 JAVA基础
运行JAVA之前,必须将系统环境变量进行配置. 如果是32位的计算机安装的JDK版本必须是32位的,如果是64位的计算机安装的JDK版本必须是64位的,两者不可忽视,以免程序无法正常启动. 具体更改方 ...
- HDU 5038 Grade(分级)
Description 题目描述 Ted is a employee of Always Cook Mushroom (ACM). His boss Matt gives him a pack of ...
- 用Jenkins+Gradle+Jetty实现持续集成、测试、部署
自动集成有很多种方案,本例用到的工具是Jenkins(前身Hudson)+Gradle+Jetty,关于Gradle可参考上一篇,Gradle常见问题. 本例项目名称: WAP Jetty 安装Jen ...