如图所示,第 1 种定义方法是有效的,但是第 2 种显示b方法未定义,请问这是什么原因
学习是最好的投资!
在第二种方法里,b()是局部变量,只能在a()的函数体内被访问到。通过onclick="b();"的方式只能访问全局作用域下的b(),很显然全局作用域下b()没有被定义。
b()
a()
onclick="b();"
html的onclick里的b方法指向window.b第一种全局定义,实际上就是window.b第二种b是a方法的局部变量,执行时找不到window.b
<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>
这样应该可以吧
在第二种方法里,
b()
是局部变量,只能在a()
的函数体内被访问到。通过onclick="b();"
的方式只能访问全局作用域下的b()
,很显然全局作用域下b()
没有被定义。html的onclick里的b方法指向window.b
第一种全局定义,实际上就是window.b
第二种b是a方法的局部变量,执行时找不到window.b
这样应该可以吧