关于JS多态中的重载问题分析

在一些后台的面向对象的编程语言中,例如Java 、c#等里面出现的函数多态的重载的概念都是指的是,方法名相同,但是参数参数不同,叫做方法的重载。
上代码帮助理解。

public void sum(int num1,int num2){
	//CODE
}
public void sum(int num1){
	//CODE
}
public void sum(int num1,string str){
	//CODE
}
sum(12,23); \\执行第一个函数
sum(12);  \\执行第二个函数
sum(12,'zhufeng');  \\ 执行第三个函数

但是在JS中并没有严格意义上的重载,因为JS中如果方法名出现了重复,那么后来出现的将会覆盖前面的同名的方法,只能保留一个(和实参没有关系)。

但是JS中有所谓的重载(非严格意义上的重载):指的是,同一个方法,通过传递实参的不同(arguments)我们完成不同的功能,我们把这个也可以理解为重载
上代码帮助理解

function(num1,num2){
	return num1+num2;
}
function(){
	var total=null;
	var ary =Array.prototype.slice.call(arguments);
	return eval(ary.join('+'));
}
sum(20,20);
sum(10,20,30);不管哪一次执行,都是第二个sum

综上所述,JS是面向对象编程语言,具有的类的封装、多态和继承。但但是,JS中的多态中没有严格意义上的重载,只有类似后台语言中的重载,并且是通过实参传递的不同个数,而实现类似重载的效果。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值