【问题标题】:Calling outer function from inner function of another outer function从另一个外部函数的内部函数调用外部函数
【发布时间】:2018-06-12 14:34:54
【问题描述】:

让我们这么说:

 a() {
  console.log("i am a")
}

 b() {
   c() {
    //call function a here 
  }
}

如何从函数c 调用函数a

【问题讨论】:

  • 您能否确保您的示例代码中的缩进是正确的?另外,你为什么不直接去a() 里面c 打电话给a
  • 调用任何其他函数的方式相同。
  • 我忘了补充说我正在使用打字稿
  • 语法无效。您正在使用类/对象的方法?
  • 在实例上调用任何其他函数的方式相同。

标签: javascript typescript


【解决方案1】:

像您声明它们一样声明的函数被提升到范围的顶部。 a 是全局可用的,并且可以被同一全局范围内的任何东西调用。

【讨论】:

  • 代码显然在某种class 中,并且不是全局的。
【解决方案2】:

我已经通过在 c 的参数上使用箭头函数解决了我的问题。

【讨论】:

    【解决方案3】:

    函数的定义方式表明 c 嵌套在 b 内部,这会影响函数执行时的作用域。首先,你必须想办法调用函数 c。由于它在函数 b 内部,因此您首先需要调用函数 b 才能访问函数 c。您的代码无法访问函数 c。

    下面的代码将允许你调用函数 c,然后调用函数 a。

    function a() {
      console.log("i am a")
    }
    
    function b() {
       this.c = function() {
        //call function a here
        window.a();
      }
      
      return this;
    }
    
    b().c()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多