小议window.event || ev
以前做项目时就遇到这个问题,但是太懒没有总结,今天来总结一下
onclick="alert(arguments.callee)"这句随便放在某个元素中,试试不同的浏览器会有弹出什么?
结果:
IE7和IE8-------> function onclick(){alert(arguments.callee)}不得不说这俩老小子跟不上时代的步伐,只能靠程序员拖着走.IE6已经被微软放弃,听说阿里都不用再兼容到IE6
IE9、firefox、chrome------>function onclick(event){alert(arguments.callee)}
可能会有人不知道arguments,先来说说这个对象,没错,是对象,一个类似数组的对象
很多js库都利用了arguments对象,所以agruments对象对于javascript程序员来说是必需熟悉的。
alert(arguments instanceof Array);//返回false
alert(typeof(arguments));//返回object
作用之一 可以创建一个灵活的函数
当函数参数不确定时,but通过arguments就可以方面的知道函数参数的具体个数
注意:arguments是实参的副本,也就是说与形参无关!
arguments.callee 返回正在执行的函数本身的引用,怎么理解呢,对函数本身的引用,对,就是这样,是不是很熟悉,递归呀,递归不就是引用了自身,callee方法可以完美实现递归!
还有一个caller方法,在这儿就不说了
回到刚开始的地方
因为存在兼容性问题,所以我们经常需要这样写
function Function(ev){
var event = window.event||ev;
}
另外,当一个函数没有实参时,arguemgns对象的第一个值就是event对象。
小议window.event || ev的更多相关文章
- ev=ev || window.event 与 ev = window.event || ev 区别
event是事件对象(也是window的属性),但不是标准的,只有IE支持.在W3C标准支持的浏览器下事件对象是引发事件函数的第一个参数,参数名随意.var oEvent = ev || event; ...
- window.event
e = e || window.event是我们在做事件处理时候区分IE和其他浏览器事件对象时常用的写法.但是这行兼容性代码有没有必要出现在所有的事件句柄中呢?标准事件调用方式需要这行代码吗?下边我们 ...
- e = e || window.event用法细节讨论
e = e || window.event是我们在做事件处理时候区分IE和其他浏览器事件对象时常用的写法.但是这行兼容性代码有没有必要出现在所有的事件句柄中呢?标准事件调用方式需要这行代码吗?下边我们 ...
- 关于window.event.returnValue=false的用处
window.event.returnValue=false放在提交表单中的onclick事件中则不会提交表单,如果放到超链接中则不执行超链接,也就是它禁止了或取消了请求,没有任何效果. 比如: if ...
- e = e || window.event的区别及用法
本文链接:https://blog.csdn.net/qq_41348029/article/details/81288481 e = e || window.event 在做事件处理时,用于区分IE ...
- JS控制键盘录入 和 window.event.keycode对照
一.只允许录入整数 1.不允许录入非数字(按下字母键就会提示并清空) function intOnly() { if (!(window.event.keyCode >= 48 &&am ...
- window.event.srcElement与window.event.target 触发事件的元素
IE浏览器支持window.event.srcElement , 而firefox支持window.event.target:<input type="text" onblu ...
- 解决webkit浏览器中js方法中使用window.event提示未定义的问题
这实际上是一个浏览器兼容性问题,根源百度中一大堆,简要说就是ie中event对象是全局变量,所以哪里都能使用到,但是webkit内核的浏览器中却不存在这个全局变量event,而是以一个隐式的局部变量的 ...
- window.event对象详尽解析
event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromEleme ...
随机推荐
- 图论(网络流):COGS 410. [NOI2009] 植物大战僵尸
410. [NOI2009] 植物大战僵尸 ★★★ 输入文件:pvz.in 输出文件:pvz.out 简单对比时间限制:2 s 内存限制:512 MB [问题描述] Plants vs ...
- 从字符串总分离文件路径、命名、扩展名,Substring(),LastIndexOf()的使用;替换某一类字符串,Replace()的用法
一:从字符串总分离文件路径.命名.扩展名,上图 二:代码 using System; using System.Collections.Generic; using System.ComponentM ...
- UNITY3D 破碎 shatter
convex mesh collider + shatter rigidbody ,
- 暴力求解——最大乘积 Maximum Product,UVa 11059
最大乘积 Maximum Product 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=84562#problem/B 解题思路 ...
- iOS 用CocoaPods做iOS程序的依赖管理
文档更新说明 2012-12-02 v1.0 初稿 2014-01-08 v1.1 增加设置 ruby 淘宝源相关内容 2014-05-25 v2.0 增加国内 spec 镜像.使用私有 pod.po ...
- linux 下安装配置jboss as7以及部署应用
linux 下安装配置jboss as7以及部署应用 1.测试平台及软件 centos 5.4 jdk-7u5-linux-i586.rpm jboss-as-7.1.1.Final.zip jbos ...
- selenium webdriver python 操作Chrome浏览器
Step1: 下载chromedriver. 下载路径: http://chromedriver.storage.googleapis.com/index.html 选择一个合适的下载即可.我下载的是 ...
- 对Spring的一些理解
最近在复习一些关于框架的概念性问题,主要是为了最近的面试,怕被问到这些概念性的问题.不过在真正做开发的时候还是要好好理解这些框架的基本原理,以及它们的工作流程.这样,我们才能更好的使用这些框架.下面就 ...
- jSP的3种方式实现radio ,checkBox,select的默认选择值。
jSP的3种方式实现radio ,checkBox,select的默认选择值.以radiao 为例:第一种方式:在jsp中使用java 脚本,这个方法最直接,不过脚本太多,不容易维护<%Stri ...
- Spring入门一
一 简介 1.Spring为企业应用的开发提供了一个轻量级的解决方案,该解决方案包括:基于依赖注入的核心机制.基于AOP的声明式事务管理.与多种持久层技术 的整合,以及优秀的Web MVC框架等等.可 ...