【问题标题】:Invoking a child function from another function javascript从另一个函数javascript调用子函数
【发布时间】:2020-09-22 08:18:44
【问题描述】:

我正在尝试向该函数添加一个内部函数并从另一个函数调用该子函数。

我的功能驱动代码如下,我无法修改:

const obj =  function1();
obj.method1(soemobject);

已经存在的function1()的定义如下:

function function1(){

}

我想要实现的是在 function1 中添加一个方法,以便我可以从另一个函数调用它:

function function1(){
    function method1(item){
       console.log(item)
}
}

我得到的错误是:

带有代码块

function function1(){
        function method1(item){
           console.log(item)
    }
    this.method1 = method1
    }

带有代码块

 function function1(){
        function method1(item){
           console.log(item)
    }
    }

到目前为止我尝试过的是:

  1. 使其成为构造函数:但由于无法修改驱动程序代码,因此需要使用 new 关键字调用它。
  2. 尝试使用此关键字访问 function1 的属性,但不成功。

【问题讨论】:

    标签: javascript node.js ecmascript-5


    【解决方案1】:

    像这样定义function1:

     function function1(){
          return {
           method1: function(item){
               console.log(item)
           }
          } 
        }
    

    调用function1的结果保存为obj

    const obj =  function1();
    

    method1 在 obj 上调用

    obj.method1(soemobject);
    

    在这种情况下,obj 是:

    {
        method1: function(item){
            console.log(item)
        }
    } 
    

    【讨论】:

    • 这些工作,谢谢。问题是我想返回一个数组而不是控制台日志吗?除了method1,我还有几个方法可以从同一个函数调用,语法会一样吗?用“,”分隔?
    • 您可以从 method1 中返回一个数组或任何内容。 method1: function(item){ return [item] } 是的,在返回的对象 obj 中添加另一个函数和 method1 只是相同的语法,分隔:return { method1: function(item){ console.log(item) }, method2:function(){} } 如果有效,请接受答案:)
    猜你喜欢
    • 2015-08-31
    • 1970-01-01
    • 2021-12-10
    • 2012-09-19
    • 2019-04-24
    • 2019-01-16
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    相关资源
    最近更新 更多