【求助】一个javascript的小问题【在线等】

2025-05-09 02:15:09
推荐回答(5个)
回答1:

obj.ondblclick = mousestatus()这样的意思是把 mousestatus()这个函数执行的结果赋值给obj.ondblclick,假设mousestatus()返回1,那么最后obj.ondblclick 就是1了。这与本意不符的。

obj.ondblclick = mousestatus;这里的mousestatus其实是指向mousestatus()这个函数的指针(像C或C++的函数指针那样吧,我也不太清楚),所以obj.ondblclick 的值其实是指向了mousestatus()这个函数,当你点击obj时就会触发mousestatus()啦。

说得有点罗嗦,但不知道你明白了没有。

回答2:

此处的e 相当于 定义了个变量 var e; 其中这一句if(!e) e = window.event; 就是相当于 var e= window.event;
所以你这样写也是可以的
function mousestatus(){
var e;
if(!e) e = window.event;
btn = e.button;
whichone = (btn<2)?"Left":"Right";
message = e.type + ":"+ whichone + "\n" ;
document.form1.info.value += message;
}
……

回答3:

括号是执行操作符,带了括号就是执行的意思。
obj.ondblclick = mousestatus();
执行到这里的时候先执行了mousestatus函数再把执行结果返回去。
就不是事件绑定了。

回答4:

obj.ondblclick=function(){

}

这是可以的,同理,ondblclick和mousestatus不过是一函数名称而已,所以,这二者是等价的

回答5:

不清楚