改变作用域是什么意思?

改变作用域是什么意思?

请尽量清晰完善地描述问题,以便大家给予专业的回复。

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

http://img1.sycdn.imooc.com//climg/59f3106600010dba06420198.jpg这段代码在加载到完成的时候,都不会触发函数,只是给每个元素绑定了单击事件,当脚本执行完之后,d的值就变为了len-1。此时才能够在页面内通过点击原点,调用绑定的函数,执行弹出d,函数内没有定义d,只能去外边访问,访问到的就是len-1。可访问范围就是由于这个特殊的函数定义方式而改变的,你所说的“范围”是只能访问遍历过后的变量值。你不要想的太复杂了,这块的主旨就是一个“先绑定,后触发”的概念。

情诗七行写成你 2017-10-28 15:45:25

而这个【范围】在本视频中具体指的是?


在本视频中,变量:d,是slideImg()函数的局部变量,dots[d].onclick事件绑定的函数,是属于slideImg()函数的局部函数。

情诗七行写成你 2017-10-28 15:36:47

“改变作用域”、“可访问范围”这些都涉及到函数以及作用域的知识,在后面的进阶部分的函数章节里会有具体讲解。因为JavaScript没有块级作用域,所以函数里alert(d)中的d的值,只能是for循环结束之后的最终值。在视频中,老师在循环体内把每一次循环到的d的值赋值给每一个圆点按钮的id属性,也就是dots[d].id = d。最终在函数里alert出来的是this.id的值。其实这个问题可以暂缓追根问底,后面的进阶课程会对作用域的知识做全面的讲解,学完之后再回头来看,就比较容易理解了。http://img1.sycdn.imooc.com//climg/59f4337e0001f86013840198.jpg

怎么都被占用了呢 2017-10-27 10:17:42

就是在循环元素绑定事件的过程中,没有触发事件,调用函数,所以d的值不会被传递进去,等到通过单击事件调用函数时,循环早已结束,只能获取到循环之后的d的值

  • 提问者 红星双子 #1
    任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。 如上所诉:关于【可访问范围】是怎么改变的?而这个【范围】在本视频中具体指的是?
    2017-10-27 18:24:21
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师