函数调用()问题

时间:2021-08-15 03:36:02
函数调用时,有的加(),有的不加。有的不加不行。还有的加“”号。如有函数stst()。调用的时候举例如下:
stst()
onclick=stst 这个有的时候不能用
onclick=stst() 
onclick="stst()"
<body onclick="stst()">
而且以上调用的效果也不同。
哪位高手能讲授一下。到底是怎么回事。
初学者,给分少一点,高手请谅解。



14 个解决方案

#1


看你写在哪呢!
第一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);正确

#2


感谢!
但为什么:
以下是正确的,
document.oncontextmenu = stest ; function stest() {return false}

但这样就错误了。
<body oncontextmenu = stest()><script>function stest() {return false}</script>
而要用:
<body oncontextmenu = stest()><script>function stest() {event.returnValue = false}</script>
或用
<BODY oncontextmenu="return false">
楼上或其他高手给指点一下。

#3


引用 2 楼 wymymq 的回复:
感谢! 
但为什么: 
以下是正确的, 
document.oncontextmenu = stest ; function stest() {return false} 

但这样就错误了。 
<body oncontextmenu = stest()> <script>function stest() {return false} </script> 
而要用: 
<body oncontextmenu = stest()> <script>function stest() {event.returnValue = false} </script> 
或用 
<BODY oncontextmenu="return false"> 
楼上或其他高手给指点一下。

document.oncontextmenu
和这<body oncontextmenu = stest()> 是不等同的

因为document下有很多属性,包括document.body
因为body没有oncentextmenu属性,只有document有吧

#4


<body oncontextmenu ='return stest();'>

#5


引用 3 楼 changke18 的回复:
document.oncontextmenu 
和这 <body oncontextmenu = stest()> 是不等同的 

但可用以下语句:
document.body.oncontextmenu = stest ; function stest() {return false}
但以下就错了:
<body oncontextmenu = stest()> <script>function stest() {return false} </script> 
还是烦您或哪位高手指点一下吧!
也感谢4楼。

#6


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

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

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

#7


bao110908讲得好象有道理,与我问题解决越来越近。但您讲的我有些不太明白。请教一下:
函数的执行结果,这个概念很好理解。 函数的引用不太容易理解,我用变量来试验如:
tt=stest;alert(tt);
发现是一个函数体。即function test(){}。
如果不是一个事件,是一个变量来调用函数,tt=stest 和 tt=stest()有什么区别呢。

HTML中的写法,去调用的函数;是“函数的执行结果”吗?

重要的一点,您能讲一下为什么达到同样的效果函数,引用的方法不同,而且最关键的是内容不同。
多谢!

#8


bao110908讲得好象有道理,与我问题解决越来越近。但您讲的我有些不太明白。请教一下:
函数的执行结果,这个概念很好理解。 函数的引用不太容易理解,我用变量来试验如:
tt=stest;alert(tt);
发现是一个函数体。即function test(){}。
如果不是一个事件,是一个变量来调用函数,tt=stest 和 tt=stest()有什么区别呢。

HTML中的写法,去调用的函数;是“函数的执行结果”吗?

重要的一点,您能讲一下为什么达到同样的效果函数,引用的方法不同,而且最关键的是内容不同。
多谢!

#9


javascript中你查查()的意思

#10


引用 9 楼 mingxuan3000 的回复:
javascript中你查查()的意思

什么意思。怎么查?

#11


引用 1 楼 changke18 的回复:
看你写在哪呢!
第一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…

总结的很好啊

#12


重要的一点,谁能讲一下为什么达到同样的效果函数,不但引用的方法不同,而且最关键的是内容不同。 
多谢!

#13


up

#14


up

#1


看你写在哪呢!
第一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);正确

#2


感谢!
但为什么:
以下是正确的,
document.oncontextmenu = stest ; function stest() {return false}

但这样就错误了。
<body oncontextmenu = stest()><script>function stest() {return false}</script>
而要用:
<body oncontextmenu = stest()><script>function stest() {event.returnValue = false}</script>
或用
<BODY oncontextmenu="return false">
楼上或其他高手给指点一下。

#3


引用 2 楼 wymymq 的回复:
感谢! 
但为什么: 
以下是正确的, 
document.oncontextmenu = stest ; function stest() {return false} 

但这样就错误了。 
<body oncontextmenu = stest()> <script>function stest() {return false} </script> 
而要用: 
<body oncontextmenu = stest()> <script>function stest() {event.returnValue = false} </script> 
或用 
<BODY oncontextmenu="return false"> 
楼上或其他高手给指点一下。

document.oncontextmenu
和这<body oncontextmenu = stest()> 是不等同的

因为document下有很多属性,包括document.body
因为body没有oncentextmenu属性,只有document有吧

#4


<body oncontextmenu ='return stest();'>

#5


引用 3 楼 changke18 的回复:
document.oncontextmenu 
和这 <body oncontextmenu = stest()> 是不等同的 

但可用以下语句:
document.body.oncontextmenu = stest ; function stest() {return false}
但以下就错了:
<body oncontextmenu = stest()> <script>function stest() {return false} </script> 
还是烦您或哪位高手指点一下吧!
也感谢4楼。

#6


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

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

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

#7


bao110908讲得好象有道理,与我问题解决越来越近。但您讲的我有些不太明白。请教一下:
函数的执行结果,这个概念很好理解。 函数的引用不太容易理解,我用变量来试验如:
tt=stest;alert(tt);
发现是一个函数体。即function test(){}。
如果不是一个事件,是一个变量来调用函数,tt=stest 和 tt=stest()有什么区别呢。

HTML中的写法,去调用的函数;是“函数的执行结果”吗?

重要的一点,您能讲一下为什么达到同样的效果函数,引用的方法不同,而且最关键的是内容不同。
多谢!

#8


bao110908讲得好象有道理,与我问题解决越来越近。但您讲的我有些不太明白。请教一下:
函数的执行结果,这个概念很好理解。 函数的引用不太容易理解,我用变量来试验如:
tt=stest;alert(tt);
发现是一个函数体。即function test(){}。
如果不是一个事件,是一个变量来调用函数,tt=stest 和 tt=stest()有什么区别呢。

HTML中的写法,去调用的函数;是“函数的执行结果”吗?

重要的一点,您能讲一下为什么达到同样的效果函数,引用的方法不同,而且最关键的是内容不同。
多谢!

#9


javascript中你查查()的意思

#10


引用 9 楼 mingxuan3000 的回复:
javascript中你查查()的意思

什么意思。怎么查?

#11


引用 1 楼 changke18 的回复:
看你写在哪呢!
第一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…

总结的很好啊

#12


重要的一点,谁能讲一下为什么达到同样的效果函数,不但引用的方法不同,而且最关键的是内容不同。 
多谢!

#13


up

#14


up