以e为参数的函数一般是以回调函数的形式被调用的。
创新互联建站致力于互联网品牌建设与网络营销,包括网站设计制作、成都网站设计、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联建站为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联建站核心团队10多年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。
也就是在event发生的时候回调。
调用的时候 e 就包含了发生事件的具体内容。
function func(e){
e = e || window.event;
... ...
}
这样写的好处就是保证 e 不会为 undefined。
window.event 总是有的。
括号外面的e是函数名,括号里面的e是参数名。这两个名称是自定义的,就是说在符合JavaScript命名规则的前提下程序设计者可以根据自己的喜好任意设定。
上面这段代码,在 JavaScript 的事件处理中比较常见,主要是为了兼容老版本的 Internet Explorer(主要是 IE9 之前的版本)而设立的,原因是老版 IE 不支持标准的 W3C 事件处理规范。
这段代码中的 e 代表事件(event)对象,即所谓的事件驱动源。下面以鼠标点击事件为例,作一个测试:
(HTML)
!DOCTYPE html
html
body
button type="button" id="btn"Click/button
script type="text/javascript"
// JavaScript 代码
/script
/body
/html
(JavaScript)
document.getElementById("btn").onclick=function(e){
alert(e);
}
编写一个匿名函数 function(e){ alert(e); },并将其赋值给事件句柄(即 onclick),这是一个回调函数,相当于 onclick(e){ alert(e); }。这段代码在 Chrome、Firefox 或新版 IE(IE9 及以后的版本)等支持标准的浏览器下运行,弹出的应该是类似“[object MouseEvent]”的字符串,说明 e 为事件对象;而在老版 IE 下运行,结果就是“undefined”(未定义)。
显而易见,在标准的流程中, 事件对象默认由事件句柄函数的第一个参数传入,供处理函数使用;在老版 IE 中,这个事件对象却无法直接由句柄函数传入,反而可以使用一个全局变量来代表事件对象,这个变量即 window.event。同样,可以用例子验证:
document.getElementById("btn").onclick=function(e){
alert(window.event);
}
在老版 IE 中即可显示 window.event 为对象,说明可以通过这种方式取得事件对象。(其实除了 IE 外,Chrome 等浏览器中也存在 window.event,但是在支持标准的浏览器中,我们最好使用标准方式。)
现在,就可以理解为什么会出现 e=e||window.event 这种写法了。因为只有这样才能兼容老版 IE 的事件处理过程:如果浏览器支持标准的处理过程则使用句柄函数传入的第一个参数(e),反之则使用 IE 的处理方法(window.event)。从某种意义上说,标准的事件对象(e) 和老版 IE 中的 window.event 可以视为等价的(事实上有一些区别,这里就不详细区分了),两者任何一个有效都可以供我们使用。
document.getElementById("btn").onclick=function(e){
e=e||window.event;
// 使用 e 对象
}
于是,上面的这段代码就可以兼容几乎所有的浏览器了。
e是指even,指的是事件,onclick="XXX(even)"
跟闭包没关系,有的浏览器可以直接通过windows对象获取到事件对象,有的就得传进来,所以有e这个参数
document.onmousemove=move; 声明dom事件当鼠标移动的时候激发
move函数 会给move函数传入一个参数 window.event
if(e) 是判断 这个 e 是否可用
比如 e 是一个undefined的时候
if(e){因为e是undefined 进不来}
if(!e){可以进来}
//例子 1
var a=undefined;
if(a){alert('可用')}else{alert('不可用');}
//例子 2
var obj={};
obj.name='click';
//obj.shot='去掉注视 和 不去掉效果不一样吧';
if(obj.name){
alert(obj.name);
}
if(obj.shot){
alert('obj.shot 可用' + obj.shot);
}else{
alert('obj.shot 不可用 或者 没有');
}
这里的e是参数的名字。参数分为:
1.形参:形式参数,相当于函数声明的局部变量,实参把自己的值赋给形参,形参就保存了这个值
2.形参只能在函数内部使用。
3.实参:实际参数,函数的调用者把值放在实参里面,传给函数的形参。
所以,实参、形参就相当于一个管道,一个接口,使调用函数的人可以通过这种方式把要计算的值传给函数去计算。
拓展资料:
1.Function与函数:Function是JavaScript提供的一种引用类型,通过Function类型创建Function对象。在JavaScript中,函数也是以对象的形式存在的,每个函数都是一个Function对象。
2.递归:在函数体内调用自身的函数被称之为递归函数。在某种意义上来说,递归近似于循环。两者都重复执行相同的代码,都需要一个终止条件来避免无限循环和无限递归。
在一个函数体内,想要调用自身函数,有一下两种方式:通过使用自身函数名实现、通过使用arguments对象的callee属性来实现。
网页名称:javascript的e,javascript的eval语句
URL标题:https://www.cdcxhl.com/article14/dssddde.html
成都网站建设公司_创新互联,为您提供虚拟主机、ChatGPT、品牌网站制作、网站制作、商城网站、App设计
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联