function能重载吗? 我写了两个相同函数名,一个有参,一个无参,我调用了无参的,怎么会去调用有参的?难道是无法识别的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 js的重载不是那么用的,js的重载只能模拟,不能跟c#或其他语言似的,根据参数来决定,你定义的那样会第二个覆盖第一个。可以参考:http://www.jb51.net/article/1081.htm function test(){ if(arguments.length>0){ alert('有参数:'+arguments[0]); }else{ alert('无参数'); }}test();test('kk'); function overridefn(){ switch(arguments.length){ case 1: (function(a){ alert('只有一个参数:' + a); }).apply(this,arguments); break; case 2: (function(a,b){ alert('两个参数:' + a + ' , ' + b); }).apply(this,arguments); break; default: (function(){ alert('没有参数'); }).apply(this); break; }}overridefn();overridefn(1);overridefn(1,2);虽然没有重载,但是我们可以模拟 7楼 牛 js不可以重载原因是:(我的理解)var 是弱类型,所以无法通过参数的类型来重载,只有通过楼上switch(i)的方法来对参数个数的不同来重载,所以在一定程度上它就没有太大存在必要,因为它function(var a)就已经包括了各种基本数据类型;这就是javascript的好处; javascript是脚本语言,这个才是重点 不是不能实现,但是不是你所说的叫话(重载) $.fn.wrapChildren = function(options) { var options = $.extend({ childElem : undefined, sets : 1, wrapper : 'div', classet:'' }, options || {}); if (options.childElem === undefined) return this; return this.each(function() { var elems = $(this).children(options.childElem); var arr = []; elems.each(function(i,value) { arr.push(value); if (((i + 1) % options.sets === 0) || (i === elems.length -1)){ var set = $(arr); arr = []; set.wrapAll($("<" + options.wrapper + ">").addClass(options.classet)); } }); }); }; 如果能看懂源码你看看jquery怎么写的:.animate( properties [, duration] [, easing] [, complete] )[]中参数可选的 IE中怎么获得鼠标距离事件源左上角的坐标 求js开发在线编辑器的相关资料 求一正则表达式 怎么实现把鼠标移到一个图片上就出现文字提示 在onmouseout中关闭一个层 隔一段时间跳出一张图片,显示一秒钟之后,图片消失,在图片显示期间点中该图片的,就视为中奖 100分求教.关于javascript中多媒体事件. 怎样才可以让数组的每个元素都有自己的对象? 怎样将两个text框中输入的数字进行比较? iframe滚动轴问题 JSP 我是新手,帮忙改一下用户注册的javascript语句吧 asp.net直接调用jquery的highslide命令
if(arguments.length>0){
alert('有参数:'+arguments[0]);
}else{
alert('无参数');
}
}test();
test('kk');
function overridefn(){
switch(arguments.length){
case 1:
(function(a){
alert('只有一个参数:' + a);
}).apply(this,arguments);
break;
case 2:
(function(a,b){
alert('两个参数:' + a + ' , ' + b);
}).apply(this,arguments);
break;
default:
(function(){
alert('没有参数');
}).apply(this);
break;
}
}
overridefn();
overridefn(1);
overridefn(1,2);
虽然没有重载,但是我们可以模拟
js不可以重载原因是:(我的理解)var 是弱类型,所以无法通过参数的类型来重载,只有通过楼上switch(i)的方法来对参数个数的不同来重载,所以在一定程度上它就没有太大存在必要,因为它function(var a)就已经包括了各种基本数据类型;这就是javascript的好处;
$.fn.wrapChildren = function(options) {
var options = $.extend({
childElem : undefined,
sets : 1,
wrapper : 'div',
classet:''
}, options || {});
if (options.childElem === undefined) return this;
return this.each(function() {
var elems = $(this).children(options.childElem);
var arr = [];
elems.each(function(i,value) {
arr.push(value);
if (((i + 1) % options.sets === 0) || (i === elems.length -1)){
var set = $(arr);
arr = [];
set.wrapAll($("<" + options.wrapper + ">").addClass(options.classet));
}
});
});
};
.animate( properties [, duration] [, easing] [, complete] )[]中参数可选的