访问函数数组中的一个函数

时间:2019-04-07 03:02:10

标签: javascript arrays function object

创建一个变量,该变量是一个函数,并且在该函数中有一组函数数组,我想访问第三级,但是我不能,给我发送错误,有人认为我做错了吗?

var mivarobject = function(){

  // array functions
  helpers = {

    // functions
    function1 : function(){
      return 1;
    },
    function2 : function(){
      return 2;
    },

  }

}


console.log(mivarobject.helpers.function1());

由此我得到以下错误:未捕获的TypeError:无法读取未定义的属性'function1'

4 个答案:

答案 0 :(得分:2)

假设您打算将new用作课程,则您缺少mivarobject关键字。

此外,您正在全局声明helpers。添加this以将其实例化为mivarobject的属性。

var mivarobject = function(){
  this.helpers = {
    function1: function(){
      return 1;
    }
  };
};

console.log((new mivarobject).helpers.function1());

答案 1 :(得分:0)

mivarobject是一个函数,因此您可以从中返回值,而无需访问返回值的function1

var mivarobject = function(){
  let helpers = {
    function1 : function(){
      return 1;
    }
  }
  return helpers
}

console.log(mivarobject().function1());

答案 2 :(得分:0)

您需要返回helpers并致电mivarobject

var mivarobject = function() {
  var helpers = {
    function1: function() {
      return 1;
    },
    function2: function() {
      return 2;
    }
  };
  return helpers;
};

console.log(mivarobject().function1());

答案 3 :(得分:0)

您的mivarobject只是一个返回void的函数-什么都没有,则mivarobject.helpersundefined,因为Js中的函数没有helpers属性。

我们有some种方法来说明您的观点,将mivarobject用作常规函数,当您要使用{{1}时,该函数返回helpers对象(不是数组) },您必须使用function1 call函数,例如:mivarobject

使用console.log(mivarobject.helpers.function1());是我的方式,创建一个函数并立即调用它,immediate function将成为一个对象。

mivarobject