您现在的位置: 365建站网 > 365文章 > js的覆盖和重载

js的覆盖和重载

文章来源:365jz.com     点击数:324    更新时间:2009-09-24 22:32   参与评论

学过JAVA的人对函数的覆盖和重载肯定是再熟悉不过了。

重载指两个或多个函数的参数类型,顺序和数量以及返回值不一样。

覆盖指两个或多个函数的参数类型,顺序和数量以及返回值完全一样。

那javascript真的有这种特性么?

回答是JS中函数重名只会采用最后一个定义。

首先来看下下面的代码

首先按名为 function with no arguments 的按钮

页面的结果为 this is a function named 'testFun' with one argument,the argument is undefined

然后按名为 function with one argument test 的按钮

页面的结果为 this is a function named 'testFun' with one argument,the argument is test

然后按名为 function with no arguments 的按钮

页面的结果为 this is a function named 'testFun2' with no arguments.

然后按名为 function with one argument test 的按钮

页面的结果为 this is a function named 'testFun2' with no arguments.

从以上的测试中我们发现我们只是点换了两个函数的定义顺序,结果大不相同。

从上面的测试中我们可以得出结论: 重载的话,只要函数定义在下面就会覆盖上面的函数定义。

好了,接下来看覆盖。

按名为 test function share the same name and arguments. 的按钮

页面的结果为 this is a function named 'testFun3' second.

测试结果很明显,结论也是和上面相同的。

最终,我们得出结论:

方法重名,JS会以最后定义的函数作为函数体。当然这不包括JS中的继承中的覆盖。

欢迎拍砖

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (324人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号