事件对象的使用和认识

先写一个事件来看

<button type="">按钮</button>
var btn = document.querySelector('button');
btn.onclick = function () {
  // Window 顶级对象
  console.log(window);
  // DOM对象 <button type="" onclick="a()">按钮</button>
  console.log(this);
}

在这里插入图片描述
       可以看到当我们在事件函数内部直接使用event的时候是可以使用的,即使不申明也是可以的, 也就是说event是window的一个内置对象,那既然是window下的对象,那是不是也可以在别的地方直接使用呢?

我们写一个任意function

function a () {
  // window对象
  console.log(window);
  // window对象
  console.log(this);
  // undefined
  console.log(event);
}
a();

在这里插入图片描述
       从上图可以看到这个时候event的值是undefined

所以问题来了, 既然event是window下的一个对象,为什么现在却找不到值了呢?

       实验了很多次,也查了很多网上的资料,也问了很多身边的大佬

最后我有了一个自己的总结:只有是事件触发的时候调用这个函数,此时函数内部的window.event才会有值,如果当你直接调用函数的时候,window.event是没有值的。
在这里插入图片描述

关于事件对象的一点小发现

       事件对象的使用时需要在事件函数写一个形参的,那时候我一直认为这个形参必须要写,情景如下

<button type="">按钮</button>
var btn = document.querySelector('button');
btn.onclick = function (event) {
  console.log(event);
}

前段时间天真的认为不传这个形参函数内部是不能使用event的,直到一天自己写错的时候发现。。。

总结

1. 一个事件函数的调用,函数发生的本质是事件触发去调用,此时事件对象可以直接在函数内部使用。
2. 一个普通的函数,直接去调用,window.evnet的值是undefined
3. 事件函数不用写形参那里的值,函数内部也可以直接使用 event.任何属性(原生js)

这是我真正接触前端的第三个月,我发现我还是很喜欢去研究一些东西的,上文是我一点平时的小总结,如果有错误的地方,请大家指教。

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃胖了的我

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值