JavaScript中的方法重载实例
作者:bea
.NET里面的方法重载用着的确很方便,哪Javascript里面能不能也哪样做呢? Javasciprt里面本生是没有方法重载的功能,以前很多人的做法可能是直接少传参数过去,然后在根据参数是否为 “undefined” 未定义来决定怎么处理,从而实现类似方法重载的功能。 例如: 代码如下: var showMessage = function(name,value,id){ if(id != ”undefined”){ alert(name+value+id);
.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');
看,这样一来就简单了……
有用 | 无用
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');
看,这样一来就简单了……
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- jQuery选择id属性带有点符号元素的方法
- jQuery统计指定子元素数量的方法
- jquery让指定的元素闪烁显示的方法
- 多个jQuery版本共存的处理方案
- jquery通过closest选择器修改上级元素的方法
- jQuery判断元素上是否绑定了指定事件的方法
- jQuery验证元素是否为空的两种常用方法
- jQuery在ul中显示某个li索引号的方法
- jQuery支持动态参数将函数绑定到事件上的方法
- jQuery实现预加载图片的方法
- jQuery检测鼠标左键和右键点击的方法
- jQuery对指定元素中指定字符串进行替换的方法
- jQuery经过一段时间自动隐藏指定元素的方法
- input输入框鼠标焦点提示信息
- 原生JS实现LOADING效果
- 使用jQuery实现图片遮罩半透明坠落遮挡
- jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
- JavaScript中使用Callback控制流程介绍
- jquery图片切换插件