最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js覆盖和重载函数_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:44:32
文档

js覆盖和重载函数_javascript技巧

js覆盖和重载函数_javascript技巧:学过JAVA的人对函数的覆盖和重载肯定是再熟悉不过了。 重载指两个或多个函数的参数类型,顺序和数量以及返回值不一样。 覆盖指两个或多个函数的参数类型,顺序和数量以及返回值完全一样。 那javascript真的有这种特性么? 回答是JS中函数重名只会采用最后一个
推荐度:
导读js覆盖和重载函数_javascript技巧:学过JAVA的人对函数的覆盖和重载肯定是再熟悉不过了。 重载指两个或多个函数的参数类型,顺序和数量以及返回值不一样。 覆盖指两个或多个函数的参数类型,顺序和数量以及返回值完全一样。 那javascript真的有这种特性么? 回答是JS中函数重名只会采用最后一个


学过JAVA的人对函数的覆盖和重载肯定是再熟悉不过了。
重载指两个或多个函数的参数类型,顺序和数量以及返回值不一样。
覆盖指两个或多个函数的参数类型,顺序和数量以及返回值完全一样。
那javascript真的有这种特性么?
回答是JS中函数重名只会采用最后一个定义。
首先来看下下面的代码
代码如下:



New Document








//展现结果
function showResult(result) {
var showDiv = document.getElementById('result');
showDiv.innerHTML = '';
showDiv.innerHTML = result;
};
//展现结果2
function showResult2(result) {
var showDiv = document.getElementById('result2');
showDiv.innerHTML = '';
showDiv.innerHTML = result;
};
//展现结果3
function showResult3(result) {
var showDiv = document.getElementById('result3');
showDiv.innerHTML = '';
showDiv.innerHTML = result;
};
//测试同名方法
function testFun() {
showResult('this is a function named \'testFun\' with no arguments.');
};
function testFun(arg) {
showResult('this is a function named \'testFun\' with one argument,the argument is '+arg);
};
//2th测试,交换两个函数的顺序
//测试同名方法
function testFun2(arg) {
showResult2('this is a function named \'testFun2\' with one argument,the argument is '+arg);
};
function testFun2() {
showResult2('this is a function named \'testFun2\' with no arguments.');
};
//3th测试,测试覆盖,同名同参数
function testFun3() {
showResult3('this is a function named \'testFun3\' first.');
};
function testFun3() {
showResult3('this is a function named \'testFun3\' second.');
};
//-->









2th test








3th test









首先按名为 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中的继承中的覆盖。
欢迎拍砖

文档

js覆盖和重载函数_javascript技巧

js覆盖和重载函数_javascript技巧:学过JAVA的人对函数的覆盖和重载肯定是再熟悉不过了。 重载指两个或多个函数的参数类型,顺序和数量以及返回值不一样。 覆盖指两个或多个函数的参数类型,顺序和数量以及返回值完全一样。 那javascript真的有这种特性么? 回答是JS中函数重名只会采用最后一个
推荐度:
标签: js 重写 覆盖
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top