在学习js的时候 我跳过了一部分章节的内容,导致现在学习react的时候很多内容都不知所措,因为这些教程都是建立在它认为你js所有内容都掌握的前提下,当然这是我自身的原因。需要反省。
下面是正题:
我们知道js有很多事件,事件说白了就是 鼠标点击,鼠标移动 ,键盘打字什么的这些人为的操作。
function(e) 其中的e ,如果你单单写一个方法,比如
那么e其实就是一个形参,和你放入ABCDEFG这些,并没有什么不同,其实我感觉大部分人都迷在这里了,e到底是个什么东西!为什么那里面不写其他字母,其实想明白就好了
重点来了:
当某个元素具有 某个事件处理的时候(比如鼠标点击),那么这个e就不仅仅只是一个参数了,它代表着捕获的这个事件对象,很抽象,别急,我们看个例子:
一个很简单的页面效果,就一个div里 包含一个点击事件,点击事件触发会在控制台打印出 event这个参数,注意!!
下面我将用费曼学习法来讲述一下:
为什么是event,因为这里面你可以随便放任意值,你说你不喜欢e这个字母,看见就恶心,你可以放ZXCVB任何你喜欢的字母和单词,只不过这是这么些年来人们潜移默化的约定罢了,就像for循环函数,为什么是i++,因为仅仅是人们习惯了,一看到就知道哦,这个i是要用来循环的,就像看见这个e,哦,它是用来代表事件对象的,别人看你的代码会一下子就知道这是什么意思。
它仅仅代表了它监听到的这个{事件对象},这个对象在代码里代表着谁呢? 没错,就是onclick,说人话就是 监听到了 鼠标 这个事件对象。
说白了也就是浏览器这个对象自带的一个对象,这个对象里包含了许多属性和方法,就好比document 一样,自带了很多方法(getElementTagName方法之类的)如下面图:
常用的e.target, 其实就相当于 上面例子里的div