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

这里对mychar两次声明赋值,后一次为什么不会覆盖前一次,是因为在两个function中?

http://img1.sycdn.imooc.com//5795c95a0001a37d05760499.jpg如果我分别用mychar1和mychar2会不会更好点。感觉用一个不容易理解

正在回答

4 回答

onclick已经声明是点击那个按钮则会调用哪个函数,函数均为局部变量

0 回复 有任何疑惑可以回复我~

不用谢 加油

0 回复 有任何疑惑可以回复我~

局部函数与全局函数

0 回复 有任何疑惑可以回复我~
#1

大块吃肉188 提问者

那我把第9行和第14行的 var mychar=document.getElementById("con")提出来放到第6行和7行之间,这就是全局函数了吧,我去试了一下,发现没效果
2016-07-25 回复 有任何疑惑可以回复我~
#2

大块吃肉188 提问者

我已经知道怎么回事,发现问这个问题的很多有很多人已经解答过了,谢谢你
2016-07-25 回复 有任何疑惑可以回复我~
#3

桃太郎 回复 大块吃肉188 提问者

第9、14行提出来放到6、7之间。“显示内容”按钮便不起作用了。按你说的后一次style.display应该覆盖前一次?但明明还是两个函数啊,还是说因为第一个函数已经改变了变量mychar的style.display,第二个函数不能再对其style改变了?或者说是因为第二个函数不存在变量,导致执行代码时,第二段函数报错,所以第二段函数不执行,但报错的话后面的Body也应该不会显示吧?怎么回事呢?
2016-09-12 回复 有任何疑惑可以回复我~
#4

大块吃肉188 提问者 回复 桃太郎

放到6,7之间后,点击按钮不起作用,是因为html是自上向下渲染的,当放到6,7行之间时候,var mychar=document.getElementById("con")没法获取id为con的元素,因为body中的内容还没读取到,所以在点击显示内容的时候没有反应。可以用window.onload=function(){var char=document.getElementById("con")加在<script>中的第一行。抱歉回的有点晚了
2016-09-17 回复 有任何疑惑可以回复我~
#5

桃太郎 回复 大块吃肉188 提问者

谢谢lllll
2016-09-17 回复 有任何疑惑可以回复我~
查看2条回复

确实是因为在两个function中

你在function中声明的变量都是局部的,只在这个函数范围内有效,出了函数就无效了

所以2次function中的mychar互不影响

1 回复 有任何疑惑可以回复我~
#1

大块吃肉188 提问者

非常感谢你
2016-07-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这里对mychar两次声明赋值,后一次为什么不会覆盖前一次,是因为在两个function中?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信