老师,为什么调用或者输出这个事件后面的函数会报错呢?

来源:4-1 事件监听

__Promise

2021-06-04 11:24:24

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>

</style>
</head>

<body>
<textarea name="" id="textarea" cols="30" rows="10"></textarea>
<script>
textarea.onkeyup = function a() {
console.log('onkeyup');
}
a()
console.log(a);
</script>
</script>
</body>


</html>

相关截图:

http://img.mukewang.com/climg/60b99c3a0937ceaa07650083.jpg

相关截图:

http://img.mukewang.com/climg/60b99c76092798dd07000246.jpg

http://img.mukewang.com/climg/60b99c82092ac81006880162.jpg

如果给函数添加立即执行的话,执行完里面的内容后,后续的调用还是会报错

问题描述:

事件监听是怎么个执行流程呢,

报错的原因是因为函数只有在事件发生的时候才会被创建吗?

写回答

1回答

好帮手慕然然

2021-06-04

同学你好,关于同学的疑问解答如下:

首先,在js中给元素绑定事件时,以下写法中,事件处理函数一般为匿名函数,如图

http://img.mukewang.com/climg/60b9bd4e09f1129c05110135.jpg

其次,立即执行函数会创建一个独立的作用域,这个作用域里面的变量,外面访问不到。

所以,如果同学想在外面也能调用事件处理函数,建议参考如下写法:

 http://img.mukewang.com/climg/60b9bd3009a38d7205160349.jpg

事件监听执行过程:程序等待某个事件发生(如鼠标点击,键盘按下等),当这个事件发生之后,会对其做出一个响应(即执行事件处理函数)。

祝学习愉快!

0

0 学习 · 15276 问题

查看课程