首页 > 解决方案 > 如何在不调用父函数的情况下调用子函数

问题描述

我在javascript中进行了一次面试。在我解释“闭包”的概念时,面试官问我以下问题。实际上需要在外部调用子方法而不调用父方法。可能吗?我无法理解这个问题的意图。任何人都让我知道是否可能

function parent(){ 
    console.log("you called parent function")
    function  child(){
      console.log("child");
    }
}

标签: javascript

解决方案


不调用child函数就不可能调用parent函数,不;直到/除非调用该函数,该child函数才存在parent。(另请注意,每次调用它都会创建一个不同的函数。) child

但是,如果您进行修改parent以使其返回child它创建的函数...

function parent(){ 
    console.log("");
    return function  child(){
//  ^^^^^^
      console.log("child");
   };
}

...您可以调用parent一次,然后child根据需要多次调用:

const c = parent(); // "you called parent function"
c();                // "child"
c();                // "child"
c();                // "child"

推荐阅读