JavaScript重载解读

在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

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-08-01 20:12:38

JavaScript重载解读的相关文章

JavaScript中的重载解读

在JavaScript中有一种特殊的数据类型---Function类型,JavaScript的每个函数都是Function类型的实例.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定. 1 <pre name="code" class="html">function sum(num1,num2) 2 { 3 return num1 +num2; 4 } 5 6 alert(sum(10,10)); //20 7 var ot

JavaScript重载

这个有必要记录一下 在Javascript 中,每个函数都有一个隐含的对象arguments,表示给函数,实际传给的参数 ,那么我们可以用 arguments来实现函数的重载 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=&quo

javascript方法重载惹的祸

先贴出代码,看看执行结果会是什么? function ShowMsg() { //函数1 this.sure = function () { alert("ok"); }; //函数2 this.sure = function (msg) { alert(msg); }; } var showMsg = new ShowMsg(); showMsg.sure(); 看上面的代码,本以为是两个方法重载的函数,执行后会弹出"ok"的信息.实则却弹出一个空字符的框. 原来

thinkPHP的验证码

在thinkphp中使用验证码很容易,只要调用thinkphp现有的方法就可以.当然,php的GD库肯定是要开的(就是在php.ini中要加载gd模块). thinkphp 3.1 ---------------------------------------------------------------------------------------------- 首先,在写Action文件,如:IndexAction.class.php.<?php  class IndexAction e

javascript 函数重载 overloading

函数重载 https://en.wikipedia.org/wiki/Function_overloading In some programming languages, function overloading or method overloading is the ability to create multiple methods of the same name with different implementations. Calls to an overloaded functi

javaScript 函数重载

javaScript函数不支持重载.有时我们想像java.C等语言 一样定义 重载的方法,那么 我们就可以用其他的方式去定义 重载的函数. 当然,实现的方式 有好多种,每个人 可能不同.下面 我贴出我的实现及使用方法 和 大家交流. js 源码: /**  * 函数参数重载方法 overload,对函数参数进行模式匹配.默认的dispatcher支持*和...以及?,"*"表示一个任意类型的参数,"..."表示多个任  *意类型的参数,"?"一般

2014年辛星解读Javascript之DOM之冒泡和捕获

上篇博客提到了Javascript事件绑定函数的三个參数.第一个是一个event.第二个是一个function.第三个是一个布尔变量.它用于指定事件传递的顺序,分为冒泡和捕获两种方式,接下来我们将揭开它的神奇面纱,彻底的解读它. 首先看例如以下代码: <html> <body> <div id = "demo"><p id = "tag">辛星</p></demo> <script typ

面向对象的Javascript(4):重载

在小项目中对于JavaScript使用,只要写几个function就行了.但在大型项目中,尤其是在开发追求 良好的用户体验的网站中,如SNS,就会 用到大量的JavaScrpt,有时JavaScript的工作量胜过了C#,这时写一堆function,就会显得很乱,杂乱无章,甚至会出现命名冲突,管理和维 护起来都很麻烦.对于这种情况我们就需要使用面向对象的思想来开发JavaScript.那我们就这样作罢: 在面向对象语言里重载是很重要的一个特性,而JavaScript这个自称面向对象的语言竟然没有

javascript 中break、 continue、函数不能重载

在javascript中,break与continue有着显著的差别. 如果遇到break语句,会终止最内层循环,无论后面还有多少计算. 如果遇到continue,只会终止此次循环,后面的自循环依然执行. var num = 0; for (var k = 0; k < 3; k++) { for (var i = 0; i < 3; i++) { for (var j = 0; j < 3; j++) { if (i === 1 && j === 1) { break;