我之前使用过此功能,但由于某种原因,它无法正常工作,并在下面给出错误。我不知道为什么,这可能是我看不到的明显错误。
TypeError: (intermediate value).inside is not a function
调用Caller并运行一个新的外部函数,该函数专门针对内部函数单独运行,而其余的外部函数则没有更明智的内部运行。
function caller() {
new outside().inside();
}
(function outside() {
function inside() {...}
})();
caller();
outside()
最好是自我调用函数,但我认为这甚至不可能。
答案 0 :(得分:1)
在另一个函数中声明的函数在该函数的范围内创建一个局部变量,它不会在函数的返回值上创建属性。
如果你想要后者,那么你必须明确地创建它。
另请注意,由于您使用的是new
关键字,因此该构造函数应以初始大写字母命名。
function caller() {
new Outside().inside();
}
function Outside() {
function inside() {
console.log("Inside");
}
this.inside = inside;
}
caller();