今天我的问题是询问如何访问函数内的函数。所以,例如,我有一个按钮,如果我点击它,它会发出警报。问题是,如果你有一个围绕该功能的功能,带警报的内部功能就不会发出警报。
以下是一个例子:
HTML:
<button onclick="doStuff()">Alert</button>
JS:
function nothing() {
var doStuff = function() {
alert("This worked!")
}
}
所以doStuff()
函数不起作用。有人可以帮我找到一种方法来访问它吗?
答案 0 :(得分:1)
你不能。这是因为它包含在您无法真正全球访问的范围内。您可以访问它的唯一方法是将其暴露在nothing
之外的某个位置。
答案 1 :(得分:1)
@Joseph梦想家最终是正确的,但是如果你在调用嵌套在另一个函数中的函数时已经死了,你可以使用OOP方法。
创建一个javascript“class”对象,并将您的函数范围设置为“this”:
function Nothing() {
this.doStuff = function() {
alert("works");
}
}
然后,在你的点击事件中你可以在Nothing“Class”函数中调用doStuff,如下所示:
var object = new Nothing();
object.doStuff();
答案 2 :(得分:0)
这是一个家庭作业问题吗?
你可能被要求做这样的事情:
function nothing() {
var doStuff = function() {
alert("This worked!")
}
var yourButton = getYourButton();
attachClickListener(yourButton, doStuff);
getYourButton和attachClickListener的实现留给读者。