js中总是说的handler是什么意思 还有函数中的event是什么意思

JavaScript013

js中总是说的handler是什么意思 还有函数中的event是什么意思,第1张

Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。在计算机编程语言中,Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。事件通常与函数结合使用,函数不会在事件发生前被执行

js如下

<script>

function showCont()

{

var bt=document.getElementById("Play")

var s=document.getElementById("fla")

var f=document.getElementById("show")

if(s.style.display=="")

{

s.style.display="none"

f.style.display=""

bt.innerText="点击缩进全文"

}

else

{

s.style.display=""

f.style.display="none"

bt.innerText="点击展开全文"

}

}

</script>

【引申】:

1. 名叫 div 的变量有一个对 handler 的引用(因为 handler 是它的一个属性)

2. handler 也同样有一个对 div 的引用(因为 div 处于它的作用域内。这是js闭包的特性,函数内的代码可以引用函数外的变量)

3. 这就造成了循环引用,最后两个变量都不会被销毁,成了内存泄露

按照这个说法,像下面这样写代码就不会出现这种内存泄露了。

因为 div 变量不再处于 handler 函数的作用域之中。