本文个人在上海喝咖啡的时候突然想到的...近期就有想写几篇关于函数调用的博客,所以回家到之后就奋笔疾书的写出来发表了
原创文章,经验之谈
经常有共事问我在火狐浏览器怎么取获event的法方,大多是想取获event.keyCode的功能
两种法方
第一种法方:
function a(e){
e=e||window.event;
alert(e.keyCode);
}
ie浏览器如下调用
<body οnclick="a()">
firefox火狐浏览器如下调用
<body οnclick="a(event)">
这样以可就调用胜利
这类法方在firefox须要带个数参去过,不是太好,面下绍介第二种法方
第二种法方:
function a(){
e=arguments.callee.caller.arguments[0] || window.event;
alert(e.keyCode);
}
ie和firefox下都如下调用
<body οnclick="a()">
这里要解释一下arguments.callee.caller.arguments[0],
简略例子如下:
function a(){
b();
}
function b(){
alert(b === arguments.callee)
alert(b.caller === a)
alert(arguments.callee.caller === a)
}
a();
面上的这个例子将出输3个true,标明当a()调用时,函数b与函数a的关系。
arguments.callee指的就是以后的函数体
arguments.callee.caller就是以后函数的级上函数
所以当执行οnclick="a()"时arguments.callee就是a(),arguments.callee.caller就是function onclick
onclick的第一个能数就是event,也就是arguments.callee.caller.arguments[0]这个。
我是江奇,此文已收录到我的个人站内http://www.imkoko.com/p/1
文章结束给大家分享下程序员的一些笑话语录: 问:你觉得让你女朋友(或者任何一个女的)从你和李彦宏之间选一个,你觉得她会选谁?
答:因为李艳红这种败类,所以我没女友!