Javascript 如何访问函数内部的函数?

Javascript 如何访问函数内部的函数?,javascript,jquery,Javascript,Jquery,今天我的问题是如何访问函数中的函数。例如,我有一个按钮,如果我点击它,它会发出警报。问题是,如果有一个函数围绕着这个函数,那么带有警报的内部函数就不会发出警报 下面是一个例子: html: 因此,doStuff()函数将无法工作。有人能帮我找到访问它的方法吗?你不能。这是因为它包含在一个范围内,您无法真正地全局访问该范围。访问它的唯一方法是将它暴露在以外的某个地方,什么都没有@Joseph,梦想家最终是正确的,但是如果你死心塌地地地调用嵌套在另一个函数中的函数,你可以使用OOP方法 创建一个ja

今天我的问题是如何访问函数中的函数。例如,我有一个按钮,如果我点击它,它会发出警报。问题是,如果有一个函数围绕着这个函数,那么带有警报的内部函数就不会发出警报

下面是一个例子:

html:


因此,
doStuff()
函数将无法工作。有人能帮我找到访问它的方法吗?

你不能。这是因为它包含在一个范围内,您无法真正地全局访问该范围。访问它的唯一方法是将它暴露在
以外的某个地方,什么都没有

@Joseph,梦想家最终是正确的,但是如果你死心塌地地地调用嵌套在另一个函数中的函数,你可以使用OOP方法

创建一个javascript“类”对象,并将您的函数范围限定为“this”:

  • 接下来,将id添加到按钮
  • 以及单击事件侦听器
然后,在click事件中,您可以在Nothing“Class”函数中调用doStuff,如下所示:

var object = new Nothing();
object.doStuff();
function nothing() {
  var doStuff = function() {
    alert("This worked!")
  }
  var yourButton = getYourButton();
  attachClickListener(yourButton, doStuff);

这是一个家庭作业问题吗

你可能会被要求做这样的事情:

var object = new Nothing();
object.doStuff();
function nothing() {
  var doStuff = function() {
    alert("This worked!")
  }
  var yourButton = getYourButton();
  attachClickListener(yourButton, doStuff);

getYourButton和attachClickListener的实现留给读者。

为什么该函数需要在另一个函数中?你根本不能
doStuff
仅在
nothing()
中可见。在调用
nothing
之前,
nothing
中的代码(包括
doStuff
)不会运行。所以你必须叫它。然后你可以通过返回
doStuff
或将其分配给另一个作用域中定义的变量等方式使
doStuff
对外部可用。但是我想你希望
doStuff
成为一种
nothing
的方法,而不是其内部代码的一部分。不,我正在编写一个游戏,尽管我试图访问函数内部的函数哦,我知道你用的是对象编程。这是我能做的。谢谢兄弟。是的,所以我想用button切换游戏button onclick激活一个功能我还没有得到这里的所有其他代码,但这里有一个网站:@sushisawesome你的小提琴是空的,但这里有一些jQuery可以帮你切换
function nothing() {
  var doStuff = function() {
    alert("This worked!")
  }
  var yourButton = getYourButton();
  attachClickListener(yourButton, doStuff);