自调用函数javascript

自调用函数javascript,javascript,self-invoking-function,Javascript,Self Invoking Function,我曾尝试在Javascript中为自调用函数编写以下代码: var ello = ("ello"); obj = (function myFunc(){var elem= []["H" + ello]["world"]["!" + "!"](); return elem; }, "as"); test = myFunc(); 但在最后一行,我收到了这个错误消息: 未定义myFunc 您尚未编写自调用函数 您已经编写了一个命名函数表达式 命名函数表达式仅在其自己的范围内生成与之同名的变量(

我曾尝试在Javascript中为自调用函数编写以下代码:

var ello = ("ello");
obj = (function myFunc(){var elem= []["H" + ello]["world"]["!" + "!"]();
 return elem;
}, "as");

test = myFunc();
但在最后一行,我收到了这个错误消息:

  • 未定义myFunc

    • 您尚未编写自调用函数

      您已经编写了一个命名函数表达式

      命名函数表达式仅在其自己的范围内生成与之同名的变量(与函数声明相反,函数声明在声明函数的范围内生成同名的变量)

      为了调用函数表达式,您必须立即调用它(在它后面加上
      ()
      ),或者将它分配给一个变量或属性,以便以后调用。这两种操作都没有(虽然前面有赋值运算符,但后面的逗号运算符表示字符串
      “as”
      被赋值)


      (请注意,您编写的函数在调用时会抛出错误。这毫无意义。)

      下面是一个自调用函数的示例:

      var ello = 'ello';
      var result = function() { return 'H' + ello}()
      console.log(result) // outputs > Hello
      

      我无法通过阅读代码来判断您想要实现什么。你必须解释你想做什么,因为代码本身看起来一点也不像。为什么你在函数声明周围使用括号,这个
      var elem=[][“H”+ello][“world”][“!”+“!”()
      完全是胡说八道。代码中有很多错误和不必要的括号,并且函数不是自调用的。正如Sergui所说,您需要准确地列出您认为代码应该执行的步骤。虽然myFunc不是“自调用”(您稍后显然会尝试调用它),但它也是obj的私有,这就是为什么您会得到“未定义”。Ak。我把它误读为功能的一部分。