JavaScript中如何将Event对象赋值给全局变量?代码赋值失败求解
解决全局变量无法接收Event对象的问题
哈哈,这个问题其实是个超常见的小失误!我帮你看看代码:
你定义的全局变量是pObject,但在点击事件的回调函数里,你写成了pOjbect = evt;——注意这里的变量名拼写错了!j和b的顺序搞反了,相当于你在给一个未声明的新变量赋值,而不是你一开始定义的那个全局变量pObject,所以打印typeof pObject自然会显示undefined。
修正后的代码很简单,把拼写改过来就行:
<script> var pEle = document.getElementById("pElement"); var pObject; pEle.addEventListener("click", function(evt) { pObject = evt; // 这里把pOjbect改成pObject console.log(typeof pObject); // 现在会打印"object" console.log(pObject); // 可以直接打印事件对象看看具体内容 }, false); </script>
另外给你个小建议:可以在代码开头加上'use strict';开启严格模式,这样如果不小心拼写错变量名,浏览器会直接抛出错误,能帮你更快发现这类低级错误,避免浪费时间排查~
内容的提问来源于stack exchange,提问作者thirstForKnowledge
相关产品推荐
相关产品推荐

