因为最传统的面相对象语言为java,所以本篇文章都是用java和javascript,做对比,博主也是在各种资料学习而来,加之自己对这门语言的思考。
1.java中最基本的特征方法的重载,“javascript没有重载方法”是吗?哈哈。
什么是重载?
答:多个同名函数同时存在,具有不同的参数个数/类型,通过参数匹配函数。
function method1(num,inex){
return num+100;
}
function method1(num){
return num+200;
}
var result = method1(100) ; //300
后面的函数覆盖了前面的函数,实际和下面代码没有区别
var method1 = function(num,index){
return num+100;
}
method1 = function(num){
return num+200;
}
因为指针覆盖了所以官方来说,javascript并没有有重载。
个人愚见:我觉java的有参数函数名和无参数函数名,就是多个指针指向了不同的方法,实际上就是多个指针多个方法。和if else思想类似。实际对于过程并没有太多意义,只是更加面向对象,更加优雅。
javascript却有他独到之处,就是一个方法可以用多个指针指向。占的内存也是一个方法内存。
var method2 = method;
这就值得我们思考了,面向对象是模拟生活,是一个名字可以指向不同的人java,还是不同名字称呼可以指向同一个人javascript,我更倾向后者,而不同名字对应不同性格也很好实现,只需要在内部判断if-else是哪一个名字,对应哪个性格(执行哪些代码变好)。可以通过参数判断。像jquery对参数的处理。
本质区别:java对象和函数是两个概念,javascript一切皆是对象。
javascript优势:可以把一个方法给多个指针,更符合实际。
java优势:帮助你实现了省去了内部对参数的if-else判断。