<script>
function ABC()
{
this.member = 1;
this.method = Show;
}
function Show(a,b,c)
{
this.member = 123;
if(arguments.length==1)
if(arguments[0].constructor == Number)
Show1_int.apply(this, arguments);
else if(arguments[0].constructor == Date)
Show1_date.apply(this, arguments);
else
Show1_string.apply(this, arguments);
if(arguments.length==2)
if(arguments[0].constructor == Array)
Show3.apply(this,arguments);
else
Show2.apply(this,arguments);
}
function Show1_int(a)
{
alert('1 integer input parameter ' + a+ ' methode is called');
}
function Show1_string(a)
{
alert('1 string input parameter ' + a+ ' methode is called');
}
function Show1_date(a)
{
alert('1 date input parameter ' + a+ ' methode is called');
}
function Show2(a,b)
{
alert('2 input parameter is transfer:\na:'+a+'\nb:'+b + '\nthe member is' +
this.member);
}
// 演示引用方式传递
function Show3(a,b)
{
arguments[0][0]=2;
alert('2 input parameter is transfer:\na:'+a+'\nb:'+b + '\nthe member is' +
this.member);
}
var o = new ABC();
var arr = new Array();
arr[0]=321;
o.method(arr[0],2); // 值传递
alert(arr[0]); // 原始值未改变
o.method(arr,2); // 引用方式传递
alert(arr[0]); // 方法调用时被方法修改
o.method(new Date());
</script>
javascript方法重载
最新推荐文章于 2022-02-25 20:00:37 发布