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

本文探讨了Java中方法重载的概念,并指出JavaScript并无此特性。通过具体示例展示了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判断。

 

转载于:https://www.cnblogs.com/LiSuSpAu/p/5761157.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值