实现点击上方小图片实现下方大图片的变更
下方详细代码
不明白红框里为啥一定要用this(图中是我写出来的错误写法,我这样写所有图点击都只会变更为小图4)。this指向点击的对象?我不怎么明白其中的逻辑关系。
通过for循环创建了4个点击事件吗?
为什么用this就可以获取到鼠标点击了哪一个小图且触发点击事件?
为什么用link就一直是触发小图4的点击事件?
求大神给我讲讲其中的逻辑关系,理清思路。(小白初学js,还望前人指路)
你先创建点击事件,创建完了,link就在最后一个,当你点击时候触发事件,获取src,this是在这个点击事件域内能取到,link是你最后创建完的值
这个叫做closure(闭包)语法
https://blog.csdn.net/loisandyu/article/details/81609139
this是当前对象,link是你定义的,你这个link,被最后一个覆盖了吧,函数里面的link是传进去的值,不是定义的属性
逻辑这东西得慢慢学,写多了就自然而然明白了。
回答你的两个问题:
一:this指代的是当前环境对象,即你绑定给onclick函数的对象;
二:涉及到同步异步问题,因为for是同步,绑定函数是异步,绑定函数内部的link值会是for循环后的最终值(美女4那张图片的标签a),
所以你写的代码最终实际上是,给所有的图片绑定点击事件,并显示图片美女4