如果该方法返回的是boolean型(true,false)是可以的

解决方案 »

  1.   

    在html代码中间写事件响应函数是要加上括号,因为浏览器会试图用 “onEventName=” 后面的字符串来生成一个新的函数再吧事件指向该函数。
    在js代码中间写响应函数则不加括号,因为js引擎试图直接事件指向 “onEventName=” 后面的函数对象。看看下面的例子:
    <button onclick="alert('test1')">test1</button>
    <button id=test2>test2</button>
    <button id=test3>test3</button>
    <script defer>
    test2.onclick=new Function("alert('test2')");
    function test_3(){
    alert("test3");
    }
    test3.onclick=test_3;
    </script>
      

  2.   


    --------------------------------------------------------
    还有象下面的条件语句,其中prefs是定义的一个window方法
    有这样写条件语句的吗,为什么?
    "if (prefs) {...}"
    --------------------------------------------------------这句的意思是,如果prefs已经被定义(非null非false)则条件满足。跟prefs的返回类型无关。<SCRIPT LANGUAGE="JavaScript">
    <!--
    function test(){if (prefs) alert("prefs is defined and is not false !"); else alert("prefs is not defined yet or is defined as false!");}function prefs(){};
    test();prefs=null;
    test();prefs=1;
    test();prefs=false;
    test()prefs=true;
    test();//-->
    </SCRIPT>
      

  3.   

    为什么将下面的一行代码改为 test3.onclick=test_3();会报错呀
    对于无参数函数是可以加上小括号的呀.
    请大侠赐教
      

  4.   

    不好意思,我说错了
    emu大侠说的对
      

  5.   

    为什么将下面的一行代码改为 test3.onclick=test_3();会报错呀
    对于无参数函数是可以加上小括号的呀.
    请大侠赐教
    请大侠赐教
    请大侠赐教
    请大侠赐教
      

  6.   

    那是因为你还没吃透呀。看看下面的test4:<BODY>
    <button onclick="alert('test1')">test1</button>
    <button id=test2>test2</button>
    <button id=test3>test3</button>
    <button id=test4>test4</button>
    <script defer>
    test2.onclick=new Function("alert('test2')");
    function test_3(){
    alert("test3");
    }
    test3.onclick=test_3;
    function test_4(){
    return new Function('alert("test4");');
    }
    test4.onclick=test_4();
    </script>
    </BODY>仔细想想我为什么这么写。
      

  7.   

    emu(ston) 大侠可以再详尽说明下
    是否只有是事件响应函数的时候才这样处理?
    对于一般类型的函数也一样吗?
    还能这样用吗?