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

时间:2015-11-12 23:22:03

标签: javascript jquery

今天我的问题是询问如何访问函数内的函数。所以,例如,我有一个按钮,如果我点击它,它会发出警报。问题是,如果你有一个围绕该功能的功能,带警报的内部功能就不会发出警报。

以下是一个例子:

HTML:

<button onclick="doStuff()">Alert</button>

JS:

function nothing() {

var doStuff = function() {
    alert("This worked!")
}

}

所以doStuff()函数不起作用。有人可以帮我找到一种方法来访问它吗?

3 个答案:

答案 0 :(得分:1)

你不能。这是因为它包含在您无法真正全球访问的范围内。您可以访问它的唯一方法是将其暴露在nothing之外的某个位置。

答案 1 :(得分:1)

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

创建一个javascript“class”对象,并将您的函数范围设置为“this”:

function Nothing() {
    this.doStuff = function() {
        alert("works");
    }
}
  • 接下来,为您的按钮添加一个ID,
  • 以及点击事件监听器

然后,在你的点击事件中你可以在Nothing“Class”函数中调用doStuff,如下所示:

var object = new Nothing();
object.doStuff();

https://jsfiddle.net/me7fek5f/

答案 2 :(得分:0)

这是一个家庭作业问题吗?

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

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

getYourButton和attachClickListener的实现留给读者。