Javascript 为什么我们要用“等”这样的字母;";在e.preventDefault()中?(我想我的答案比其他帖子更详细)
首先,让我们看看addEventListener的语法 通常是: target.addEventListener(type,listener[,useCapture])强> addEventlistener的参数定义为: 类型:表示要侦听的事件类型的字符串 侦听器:当发生指定类型的事件时,接收通知的对象(实现事件接口的对象) 发生。这必须是实现EventListener的对象 接口或JavaScript函数 (来自MDN) 但我认为有一点应该注意: 当您使用Javascript函数作为侦听器时,实现事件接口的对象(对象事件)将自动分配给函数的“第一个参数”。因此,如果您使用函数(e),对象将分配给“e”,因为“e”是函数的唯一参数(定义为第一个!),然后您可以使用e.preventDefault来阻止某些事情 让我们尝试以下示例:Javascript 为什么我们要用“等”这样的字母;";在e.preventDefault()中?(我想我的答案比其他帖子更详细),javascript,Javascript,首先,让我们看看addEventListener的语法 通常是: target.addEventListener(type,listener[,useCapture]) addEventlistener的参数定义为: 类型:表示要侦听的事件类型的字符串 侦听器:当发生指定类型的事件时,接收通知的对象(实现事件接口的对象) 发生。这必须是实现EventListener的对象 接口或JavaScript函数 (来自MDN) 但我认为有一点应该注意: 当您使用Javascript函数作为侦听器时,实现
<p>Please click on the checkbox control.</p>
<form>
<label for="id-checkbox">Checkbox</label>
<input type="checkbox" id="id-checkbox"/>
</div>
</form>
<script>
document.querySelector("#id-checkbox").addEventListener("click", function(e,v){
//var e=3;
var v=5;
var t=e+v;
console.log(t);
e.preventDefault();
}, false);
</script>
请单击复选框控件
复选框
document.querySelector(“id复选框”).addEventListener(“单击”,函数(e,v){
//变量e=3;
var v=5;
var t=e+v;
控制台日志(t);
e、 预防默认值();
},假);
结果将是:[object MouseeEvent]5,您将阻止单击事件
但如果您删除注释标志,如:
<script>
document.querySelector("#id-checkbox").addEventListener("click", function(e,v){
var e=3;
var v=5;
var t=e+v;
console.log(t);
e.preventDefault();
}, false);
</script>
document.querySelector(“id复选框”).addEventListener(“单击”,函数(e,v){
变量e=3;
var v=5;
var t=e+v;
控制台日志(t);
e、 预防默认值();
},假);
您将得到:8和一个错误:“未捕获类型错误:e.preventDefault不是一个函数
在HTMLInputElement(VM409:69)”中
当然,这次不会阻止click事件,因为函数中再次定义了“e”
但是,如果将代码更改为:
<script>
document.querySelector("#id-checkbox").addEventListener("click", function(e,v){
var e=3;
var v=5;
var t=e+v;
console.log(t);
event.preventDefault();
}, false);
</script>
document.querySelector(“id复选框”).addEventListener(“单击”,函数(e,v){
变量e=3;
var v=5;
var t=e+v;
控制台日志(t);
event.preventDefault();
},假);
每件事都将正常运行…您将获得8,并且单击事件将被阻止
因此,“e”只是函数的一个参数,在函数()中需要一个“e”来接收“事件对象”,然后执行e.preventDefault()。这也是您可以将“e”更改为js未保留的任何单词的原因。约定。你想放什么就放什么
如果你想知道为什么你可以把你想要的东西放进去,那就是动态类型语言的工作原理。您不需要声明类型,因为它是在运行时而不是编译时确定的。约定。你想放什么就放什么
如果你想知道为什么你可以把你想要的东西放进去,那就是动态类型语言的工作原理。您不需要声明类型,因为它是在运行时而不是编译时确定的。因为速记
e
代表事件
,由于它的简短和方便,它主要表示为e
。(例如:i
和j
表示循环或索引,c
表示计数器,n表示..等)
JavaScript中的一些方法(如您的示例中的
addEventListener
)公开参数/属性。第二个参数用作回调函数,它可以选择性地将Event
对象属性公开为第一个参数function(Event)
。事件的名称由您决定(只要它是一个有效的变量名)。无论您使用什么,都将表示返回的事件对象。因为速记e
代表事件
,由于它的简洁和方便,它主要表示为e
。(例如:i
和j
表示循环或索引,c
表示计数器,n表示..等)
JavaScript中的一些方法(如您的示例中的
addEventListener
)公开参数/属性。第二个参数用作回调函数,它可以选择性地将Event
对象属性公开为第一个参数function(Event)
。事件的名称由您决定(只要它是一个有效的变量名)。无论您使用什么,都将表示返回的事件对象。如果您编写一个伪addEventListener
函数,并查看它的结构,可能会更容易理解
该函数接受两个参数,一个字符串name
和一个回调函数listener
。它将创建一个事件,并将其用作传递给它的函数中的第一个参数
var addEventListener=函数(名称、侦听器){
var事件={
姓名:姓名,,
preventDefault:function(){
警报('preventDefault将阻止您选中此复选框!')
}
};
if(typeof listener==“function”)listener(事件);
}
addEventListener('click',函数(您想要的名称){
preventDefault();
})
如果您编写一个伪addEventListener
函数,并查看它的结构,可能会更容易理解
该函数接受两个参数,一个字符串name
和一个回调函数listener
。它将创建一个事件,并将其用作传递给它的函数中的第一个参数
var addEventListener=函数(名称、侦听器){
var事件={
function(**e**){
alert("preventDefault will stop you from checking this checkbox!")
**e**.preventDefault();
}