问答详情
源自:6-11 编程练习

为什么函数调用那里不加括号就没有结果

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

   function count(){

       

    //获取第一个输入框的值

var one=document.getElementById('txt1').value

//获取第二个输入框的值

var two=document.getElementById('txt2').value

//获取选择框的值

var sel=document.getElementById('select').value

//获取通过下拉框来选择的值来改变加减乘除的运算法则

var result;

switch(sel)

{

case '+':result=parseInt(one)+parseInt(two);

break;

case '-':result=parseInt(one)-parseInt(two);

break;

case '*':result=parseInt(one)*parseInt(two);

break;

case '/':result=parseInt(one)/parseInt(two);

break;

}

    //设置结果输入框的值 

    document.getElementById('fruit').value=result;

   }

  </script> 

 </head> 

 <body>

   <input type='text' id='txt1' /> 

   <select id='select'>

<option value='+'>+</option>

<option value="-">-</option>

<option value="*">*</option>

<option value="/">/</option>

   </select>

   <input type='text' id='txt2' /> 

   <input type='button' value=' = ' onclick="count"/> <!--通过 = 按钮来调用创建的函数,得到结果--> 

   <input type='text' id='fruit' />   

 </body>

</html>


提问者:weixin_慕慕2360201 2020-03-03 20:24

个回答

  • qq_无_奈_0
    2020-03-03 21:53:59

    例子说明:例1.

    function init(){

        。。。。。。

    }

    window.onload = init;

    例2:

    function fun(){

        return 5

    }

    var a=fun

    var b=fun()

    a是fun函数,b是5

    那么到底在使用一个函数时需不需要加上()呢?

    函数只要是要调用它进行执行的,都必须加括号。此时,函数实际上等于函数的返回值或者执行效果,当然,有些没有返回值,但已经执行了函数体内的行为,就是说,加括号的,就代表将会执行函数体代码。

    不加括号的,都是把函数名称作为函数的指针,一个函数的名称就是这个函数的指针,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。

    例如window.οnlοad=init;

    init函数并不会在这行代码时就执行,浏览器加载文档时这句话会被加载,会被告知文档加载完要执行哪个函数,但实际上没有当时就执行,等到整个文档加载完成之后才会通过init这个指针去执行init()。