关于btn.onclick=funcName调用方法

关于btn.onclick=funcName调用方法

这个调用方法函数名后面不能跟(),如果我这个函数需要传入参数呢?应该怎么办?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码。
不加括号的,都是把函数名称作为函数的指针,用于传参,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。

所以一般时候我们都是采用的是无括号的原因。这也是由于括号的二义性,因为括号是“函数调用运算符”,相当于在执行这样一个函数

例如某一元素的单击事件:btn.onclick=funciton(){函数体},funciton(){函数体}可以使用函数名替代。当单击事件发生时,执行函数体,可以理解为使用函数名()调用函数。

希望可以帮到你!

  • 红星双子 提问者 #1
    如果我用btn.onclick=funcName方法,这个函数需要传参,该怎么办?
    2017-10-13 22:06:24
  • 红星双子 提问者 #2
    比如我的页面上有多个按钮,我要让它们在onclick时,有不同的颜色变化,这时我写了一个改变背景颜色的函数,具体颜色以参数传递。这个应该怎么写?
    2017-10-13 22:24:33
  • 红星双子 提问者 #3
    非常感谢!
    2017-10-15 12:56:59
提问者 红星双子 2017-10-15 12:55:35
<html>
    <head>
   <meta charset="UTF-8">
   <title>onload</title>
   <script type="text/javascript">
    window.onload=function (){
        var btn=document.getElementById("btn");
        
        function colorCh(obj,clickCol,outCol){
            obj.onclick=function (){
                this.style.color=clickCol;
            }
            obj.onmouseout=function (){
                this.style.color=outCol;
            }
        }
        colorCh(btn,"red","#888")
    }
   </script>
</head>
<body>
<input id="btn" type="button" value="点击改变按钮字体颜色" >
</body>
</html>


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师