我对javascript面向对象编程的理解---------重载

因为最传统的面相对象语言为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判断。

 

posted @ 2016-08-11 15:34  明阳春秋  阅读(219)  评论(0编辑  收藏  举报