函数调用时,有的加(),有的不加。有的不加不行。还有的加“”号


函数调用时,有的加(),有的不加。有的不加不行。还有的加“”号。如有函数stst()。调用的时候举例如下: 
stst() 
onclick=stst 这个有的时候不能用 
onclick=stst() 
onclick="stst()" 
<body onclick="stst()"> 
而且以上调用的效果也不同。 
到底是怎么回事
第一stst()使用地方 
<input id="text1" onclick="stst()" />正确 
<input id="text1" onclick=stst() />正确 属性可以省去引号,单引号也可以 
<input id="text1" onclick="stst" />错误 

第二stst使用地方 
document.getElementById("text1").onclick=stst正确 
document.getElementById("text1").onclick=stst()错误 
如果有该函数有参数要传递可以用匿名函数。 
document.getElementById("text1").onclick=function(){stst(param)} 

第三 stst() stst都可以使用的地方 
window.setInterval(stst,1000); 正确 
window.setInterval(stst(),1000);正确 
window.setInterval("stst()",1000);正确 


如果在 JavaScript 中使用 document.body.oncontextmenu = stest(); 的话,就是把 stest 的执行结果给了 oncontextmenu 事件,但是这个事件要求的是一个函数的引用的,并不是函数的执行结果,而 stest 就是 stest() 函数的引用。 

如果写成 document.body.oncontextmenu = 'stest()'; 的话,那么就表示把一个字符串给了 oncontextmenu 事件,这显然也是不正确的。 

而使用 
<body oncontextmenu = stest()> 时,这是 HTML 中的写法,也就是在触发 oncontextmenu 事件时去调用的函数,事件不触发时这个函数根本就不会执行。  

posted on 2009-09-30 17:14  dolphin_bobo  阅读(220)  评论(0编辑  收藏  举报

导航