JavaScript中的方法重载实例

 这篇文章主要介绍了JavaScript中的方法重载实例,本文直接给出重载实例,需要的朋友可以参考下

 
 

.NET里面的方法重载用着的确很方便,哪Javascript里面能不能也哪样做呢?

Javasciprt里面本生是没有方法重载的功能,以前很多人的做法可能是直接少传参数过去,然后在根据参数是否为 “undefined” 未定义来决定怎么处理,从而实现类似方法重载的功能。

例如:

 

代码如下:

var showMessage = function(name,value,id){
if(id != ”undefined”){
alert(name+value+id);
}
else if(value != ”undefined”){
alert(name + value);
}
else{
alert(name);
}
}

 

showMessage(”哈哈”);
showMessage(”哈哈”,”??”);
showMessage(”哈哈”,”??”,124124);

 

今天在Ajaxian上面看到了一篇关于Javascript方法重载的写法,它是能过另外一个方法来实现的。

看一下这个代码:

 

代码如下:

// addMethod - By John Resig (MIT Licensed)
function addMethod(object, name, fn){
var old = object[ name ];
object[ name ] = function(){
if ( fn.length == arguments.length ){
return fn.apply( this, arguments );
}
else if ( typeof old == 'function' ){
return old.apply( this, arguments );
}
}
};

 

var UserInfo = function(){
addMethod(this,”find”,function(){
alert(”没有参数”);
});

addMethod(this,”find”,function(name){
alert(”传入的参数是一个,叫 ”+name);
});

addMethod(this,”find”,function(name,value){
alert(”传入了两个参数,一个叫 name=”+name+” 一个叫 value=”+value);
});
};

var userinfo = new UserInfo();
userinfo.find();
userinfo.find('我是谁?');
userinfo.find('某某某','1512412514');

看,这样一来就简单了

时间: 2024-08-02 18:26:50

JavaScript中的方法重载实例的相关文章

JavaScript中的方法重载实例_javascript技巧

.NET里面的方法重载用着的确很方便,哪Javascript里面能不能也哪样做呢? Javasciprt里面本生是没有方法重载的功能,以前很多人的做法可能是直接少传参数过去,然后在根据参数是否为 "undefined" 未定义来决定怎么处理,从而实现类似方法重载的功能. 例如: 复制代码 代码如下: var showMessage = function(name,value,id){     if(id != "undefined"){         alert(

Javascript中的方法和匿名方法实例详解_javascript技巧

本文实例讲述了Javascript中的方法和匿名方法.分享给大家供大家参考.具体分析如下: Javascript方法(函数) 声明函数 以function开头,后跟函数名,与C#.java不同,Javascript不需要声明返回值类型.参数类型.没有返回值就是undefined. 举个例子更清楚:  无参数无返回值的方法: function f1(){ alert('这是一个方法'); } f1();//调用方法 无参数有返回值的方法: function f2(){ return 100; }

JavaScript中的类与实例实现方法_javascript技巧

本文实例讲述了JavaScript中的类与实例实现方法.分享给大家供大家参考.具体如下: JavaScript 中没有父类, 子类的概念, 也没有class 和 instance 的概念, 全靠 prototype chain来实现继承. 当查找一个对象的属性时, JavaScript 会向上遍历 prototype chain, 直到找到对应的属性为止. 有几种方法, 可以使得 JavaScript 模拟出 class 和 instance 的概念. 1. 直接使用构造函数来创建对象, 在构造

javascript中没有函数重载的概念实例讲解

  这篇文章主要介绍了通过实例理解javascript中没有函数重载的概念,十分的简单易懂,需要的朋友可以参考下 将函数名想象为指针,也有助于理解为什么ECMAScript中没有函数重载的概念.如下例子: 代码如下: function addSomeNum(num) { return num+100; } function addSomeNum(num) { return num+200; } var result=addSomeNum(100);//300 显然,这个例子中声明了两个同名函数,

jQuery中unwrap()方法用法实例

 这篇文章主要介绍了jQuery中unwrap()方法用法,实例分析了unwrap()方法的定义.功能及移除匹配元素父元素的使用技巧,需要的朋友可以参考下     本文实例讲述了jQuery中unwrap()方法用法.分享给大家供大家参考.具体分析如下: 此方法将移除匹配元素的父元素. 从方法的字面意思可以看出是清除wrap()方法的效果. 语法: 代码如下: $(selector).unwrap() 实例代码:     代码如下: <!DOCTYPE html PUBLIC "-//W3

jQuery中wrapAll()方法用法实例

 这篇文章主要介绍了jQuery中wrapAll()方法用法,实例分析了wrapAll()方法的功能.定义及匹配元素的使用技巧,需要的朋友可以参考下     本文实例讲述了jQuery中wrapAll()方法用法.分享给大家供大家参考.具体分析如下: 此方法将所有匹配的元素用单个元素包裹起来. 此方法与wrap()方法虽然功能类似,但是有着很大区别.wrap()方法会把每一个匹配的元素都匹配一次. 语法一: 用指定的DOM元素去包裹匹配元素. 复制代码 代码如下: $(selector).wra

jQuery中wrapInner()方法用法实例

 这篇文章主要介绍了jQuery中wrapInner()方法用法,实例分析了wrapInner()方法的功能.定义及包裹匹配元素的使用技巧,需要的朋友可以参考下     本文实例讲述了jQuery中wrapInner()方法用法.分享给大家供大家参考.具体分析如下: 此方法使用指定的HTML内容或元素将匹配的元素内容包裹起来. 语法一: 用指定的DOM元素去包裹匹配元素的内容. 代码如下: $(selector).wrapInner(elem) 参数列表: 参数 描述 elem 用于包裹目标的D

jQuery中replaceAll()方法用法实例

 这篇文章主要介绍了jQuery中replaceAll()方法用法,实例分析了replaceAll()方法的功能.定义及匹配元素去替换指定内容的方法,需要的朋友可以参考下     本文实例讲述了jQuery中replaceAll()方法用法.分享给大家供大家参考.具体分析如下: 此方法用匹配元素去替换指定的内容. replaceAll()方法的作用和replaceWith()方法是完全一样的. 语法结构: 代码如下: $(content).replaceAll(selector)   参数列表:

浅析Javascript中bind()方法的使用与实现_javascript技巧

我们先来看一道题目 var write = document.write; write("hello"); //1.以上代码有什么问题 //2.正确操作是怎样的 不能正确执行,因为write函数丢掉了上下文,此时this的指向global或window对象,导致执行时提示非法调用异常,所以我们需要改变this的指向 正确的方案就是使用 bind/call/apply来改变this指向 bind方法 var write = document.write; write.bind(docum