IIFE,javascript,函数undefined

时间:2015-08-27 10:45:11

标签: javascript

这是我的IIFE功能

var test = function(){
  console.log('fire');
}();

它在开始时调用。但是我该怎么称呼呢?

var fireTestFn = function(){
   test();
}

fireTestFn(); // test() is not a function

JSbin https://jsbin.com/cesuzimogu/edit?js,console

2 个答案:

答案 0 :(得分:3)

您可以使用命名函数表达式从内部返回test

var test = function fn(){
  console.log('fire');
  return fn;
}();

答案 1 :(得分:0)

这样的东西会起作用

var myNamespace = {};

(function(ns) {
    ns.test = function(){
      console.log('fire');
    };

    /*ns.myOtherFunction = function(var1) { }*/
})(myNamespace);

var fireTestFn = function(){
   myNamespace.test();
};

fireTestFn();

请参阅此处的示例:https://jsbin.com/helumoveqe/edit?js,console