<script type="text/javascript">
function myfun()
{
alert("11111111111111111");
}
myfun();function myfun()
{
alert("22222222222222222222");
}
myfun();</script>
上面的代码为什么两个调用都会是出现下面的这个函数

解决方案 »

  1.   

    js 引擎按 script 标记块解释!分开写就可以了L@_@K
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title> new document </title>
      <meta name="generator" content="editplus" />
      <meta name="author" content="" />
      <meta name="keywords" content="" />
      <meta name="description" content="" />
     </head> <body>
    <script type="text/javascript">
    <!--
    <script type="text/javascript">
    function myfun()
    {
    alert("11111111111111111");
    }
    myfun();
    </script>//-->
    </script>
    <script type="text/javascript">
    <!--
    function myfun()
    {
    alert("22222222222222222222");
    }
    myfun();
    //-->
    </script>
     </body>
    </html>
      

  2.   

    有错,重新粘一下L@_@K
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title> new document </title>
      <meta name="generator" content="editplus" />
      <meta name="author" content="" />
      <meta name="keywords" content="" />
      <meta name="description" content="" />
     </head> <body>
    <script type="text/javascript">
    <!--
    function myfun()
    {
    alert("11111111111111111");
    }
    myfun();
    //-->
    </script><script type="text/javascript">
    <!--
    function myfun()
    {
    alert("22222222222222222222");
    }
    myfun();
    //-->
    </script>
     </body>
    </html>
      

  3.   


    那我想问问一个script块里面,两个调用到底是怎么执行的呢?
      

  4.   

    JS 引擎会先对函数语句进行解释,因此函数调用可以出现在函数定义之前,例如:
    myfun(); // 正常执行!function myfun()
    {
    alert("11111111111111111");
    }
    函数解释按块执行,同一脚本块(Script)内同名函数的最后一个有效,因为函数是靠函数名来识别的,
    对于所有函数语句进行解释完成后,才是顺序执行调用语言。
    因此,lz 的代码只能看到 22222222222222222222。