为了账号安全,请及时绑定邮箱和手机立即绑定

若干个同名方法同时存在也可以被执行是什么原因?

若干个同名方法同时存在也可以被执行是什么原因?

qq_遁去的一_1 2018-08-13 11:10:03
<div onclick="test({i});">test {i}</div><script>function test(i) {     alert(i); }将以上代码循环到页面上显示,如:<?php for($i=0; $i<10; $i++): ?>     ...上面那段代码...<?php endfor; ?>感到有些意外,这时页面上已经同时存在10个相同的test方法了,当点击某个div时,居然会执行对应的test方法,而且都正确地把i给打印出来了,有大神深究过为什么吗?
查看完整描述

1 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

每一次for循环打印一个同名的js方法,就会重写一次,所以以最后一次为准.

如:

function test(){
    alert(1);
}function test(){
    alert(2);
}

这时候会执行后一个test(),alert(2),第一个就会被覆盖,所以你的代码中test()执行的是最后一次重写的test().
而你for循环的变量i每次循环都是不一样的,执行的结果就是test(i),即alert(i).

注意:在javascript中如果定义了2个或2个以上的相同名字的函数,则只有最后定义的函数才有效。


查看完整回答
反对 回复 2018-09-17
  • 1 回答
  • 0 关注
  • 579 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号