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] )[]中参数可选的 一个前端开发的测试题,请各位大拿给个思路 js调用submit方法时不显示进度条的原因。 phonegap写安卓程序出现灵异事件 关于javascript输出一句话的问题 文字省略号和图片提示2。 如何使用tabindex给指定的控件焦点 求高手解答一下 xmlHttp.open的摆放位子问题 js 帮看看 急!我在WEB页面中插了一个控件,怎样设置它的属性? 下拉联动 $mailbody调出来的是代号 而不是文字??? 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] )[]中参数可选的