Javascript函数范围和从onclick调用
Javascript function scope and calling from onclick
使用JavasScript,假设在outerFunction()
中定义了一个innerFunction()
。如果您尝试在outerFunction()
之外调用innerFunction()
,则会出现错误,因为它未在范围内定义
然而,如果在outerFunction()
中,您为某个外部元素(如button
)分配innerFunction()
给一个事件,例如单击事件,则可以从按钮的该范围调用innerFunction()
,无论它是什么。那么,为什么您可以从不同的范围对innerFunction()
进行第二次调用呢。
我有一个工作示例:http://jsfiddle.net/rcmoore38/gPrMk/
最初的changeColor()
调用不起作用,但当changeColor()
被分配给button
时,可以通过按钮调用。
谢谢!
没有"按钮的作用域"。实际情况是,您从内部函数可见的范围中分配事件侦听器,这在JavaScript中才是最重要的。JS中的作用域是关于函数的声明位置。
在您的示例中:
$("#b").click(function() { changeColor() });
函数changeColor
可以通过匿名函数内部的闭包获得,因为它是在外部作用域中声明的。当您定义嵌套函数时,父函数中的所有变量和函数都将在其中可用。因此,当单击元素并调用匿名函数时,它仍然引用changeColor
,并且能够调用它。
您也可以在不使用闭包的情况下设置事件处理程序,如下所示:
$("#b").click(changeColor);
正如我所说,重要的是,当您引用时,changeColor
就在作用域中(而不是当浏览器实际调用它时)。
相关文章:
- 与params的onclick调用
- JavaScript onclick 调用函数
- html按钮的动态onclick调用
- 使用onclick调用属性对象函数
- 从 onclick 调用函数,为什么我的参数被评估为 true
- 如何从 HTML 中的 onclick 调用 ASP 函数
- Javascript - 找不到函数?!从onClick调用,函数在同一页面中
- 使用 onClick 调用 Javascript 函数
- 使用onclick调用php(更快的加载时间)
- 货币兑换 - 如何从 onclick 调用函数中的函数
- 使用onClick调用JavaScript函数-使用表单元素值.
- 如何从onClick调用函数
- 使用表的td中的onclick调用jquery函数
- 使用onclick调用的函数切换文本
- 使用onclick调用变量对象中的函数
- Javascript函数范围和从onclick调用
- 在for循环中,如何传递document.getElementById('').onClick调用的函数
- 菜单项onclick调用一个multi-css onhover事件
- 如何在html中用onclick调用firefox插件函数
- 使用参数从OnClick调用JS函数