在外面的其他功能中调用函数

时间:2017-01-01 21:42:34

标签: javascript

我之前使用过此功能,但由于某种原因,它无法正常工作,并在下面给出错误。我不知道为什么,这可能是我看不到的明显错误。

TypeError: (intermediate value).inside is not a function

调用Caller并运行一个新的外部函数,该函数专门针对内部函数单独运行,而其余的外部函数则没有更明智的内部运行。

function caller() {
new outside().inside();
}


(function outside() {
function inside() {...}
})();

caller();

outside()最好是自我调用函数,但我认为这甚至不可能。

1 个答案:

答案 0 :(得分:1)

在另一个函数中声明的函数在该函数的范围内创建一个局部变量,它不会在函数的返回值上创建属性。

如果你想要后者,那么你必须明确地创建它。

另请注意,由于您使用的是new关键字,因此该构造函数应以初始大写字母命名。



function caller() {
  new Outside().inside();
}


function Outside() {
  function inside() {
    console.log("Inside");
  }

  this.inside = inside;
}

caller();