search

Home  >  Q&A  >  body text

javascript - onclick提示方法未定义

如图所示,第 1 种定义方法是有效的,但是第 2 种显示b方法未定义,请问这是什么原因

PHPzPHPz2895 days ago673

reply all(3)I'll reply

  • 迷茫

    迷茫2017-04-10 17:39:04

    在第二种方法里,b()是局部变量,只能在a()的函数体内被访问到。通过onclick="b();"的方式只能访问全局作用域下的b(),很显然全局作用域下b()没有被定义。

    reply
    0
  • 迷茫

    迷茫2017-04-10 17:39:04

    html的onclick里的b方法指向window.b
    第一种全局定义,实际上就是window.b
    第二种b是a方法的局部变量,执行时找不到window.b

    reply
    0
  • 阿神

    阿神2017-04-10 17:39:04

    <script>
            function a(){
                var b=function(){
                    alert('try');
                }
                return b;
            }
            var c=a();
            var newHtml = '<p class="aa" onclick="c();">the new p</p>';
                $('body').append(newHtml);
        </script>

    这样应该可以吧

    reply
    0
  • Cancelreply