是否可以在JavaScript中调用另一个函数中本地定义的函数?我有一个非常类似的代码:
var module = function () {
function inner() {
// Some code here
}
// Some code here
}
var originalModule = module;
var module = function () {
originalModule();
// inner() must be called here
}
所以我重写了原始的模块实现,但是在新实现的某些时候我需要调用inner()函数。我无法编辑原始实现。到目前为止,我看到的唯一方法是从原始复制inner()函数并在新的函数中定义它。还有另一种方式吗?
答案 0 :(得分:1)
由于在inner()
范围内定义module()
,您无法在此范围之外访问它。
此模式用于实现module()
的私有方法。
答案 1 :(得分:0)
这通常不是一个好习惯,但你可以做this之类的事情:
function a(x) { // <-- function
function b(y) { // <-- inner function
return x + y; // <-- use variables from outer scope
}
return b; // <-- you can even return a function.
}
a(3)(4); // == 7.