当前位置: 首页 > 知识库问答 >
问题:

在匿名自执行函数中定义全局函数?

秦奇
2023-03-14
(function(){

  var someValue = 5;

  function myFunction(input) = {
    return someValue * input;
  };

})();

我有一个自动执行的函数,它包含很多东西,其中at函数是我想要全局化的。我通常只在全局范围内声明它,但它需要能够引用仅对自执行函数局部的变量

在不完全去掉自执行函数(从而在全局空间中乱扔变量)的情况下,使函数全局可访问的最佳方法是什么?

共有2个答案

楚举
2023-03-14

或者,你可以这样做,这与ntalbs提出的结果基本相同。

 var myFunction;
 (function(){
     var someValue = 5;
     myFunction = function (input) {
         return someValue * input;
     };
 })();

console.log( myFunction( 4 ), window.myFunction ); // output: 20, function(input){return someValue * input}
琴元凯
2023-03-14

您可以将函数添加到全局窗口对象。

(function(){

  var someValue = 5;

  window.myFunction = function (input) {
    return someValue * input;
  };

})();

执行立即函数后,可以调用myFunction()。

 类似资料:
  • 我有一个脚本给了我以下错误:“TypeError:clickables[ic]未定义”,当我用Firebug/在浏览器控制台中检查它时。我是一名javascript初学者,正在尝试学习如何使用vanilla javascript进行操作,因此我正在专门寻找一种解决方案。 问题是:如何消除/消除未定义的TypeError? 我使用它来显示隐藏的元素,其显示属性设置为无。脚本应该获取文档中特定类的所有

  • 本文向大家介绍浅析Javascript匿名函数与自执行函数,包括了浅析Javascript匿名函数与自执行函数的使用技巧和注意事项,需要的朋友参考一下 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途。匿名函数:就是没有函数名的函数。 函数的定义,大致可分为三种方式: 第一种:这也是最常规的一种 第二种:这种方法使用了Function构造函数,把参数列表和函数体都作为字符

  • 问题内容: 在javascript中,存在创建匿名函数并立即调用它的常见模式(通常称为自执行匿名函数或立即调用的函数表达式)。 使用Java 8 lambda,是否有标准方法可以复制此行为?有点像。 这个问题基本上提出了相同的问题,但是对于Java7。我正在明确地寻找使用lambda的构造。 问题答案: 也不是没有声明类型。由于Java是静态类型的语言,并且函数不是一等公民,因此编译器需要知道la

  • 在javascript中,常见的模式是创建匿名函数并立即调用它(通常称为自动执行匿名函数或立即调用的函数表达式)。 对于Java8 lambdas,是否有复制这种行为的标准方法?类似于

  • 我经常这样编写JS自动执行匿名函数 但前几天我在某人的代码里看到了这个 有什么不同,推荐哪一种?

  • 本文向大家介绍common-lisp 定义匿名函数,包括了common-lisp 定义匿名函数的使用技巧和注意事项,需要的朋友参考一下 示例 Common Lisp中的函数是一等值。可以使用创建匿名函数lambda。例如,这是3个参数的函数,然后我们使用调用funcall 匿名函数也可以直接使用。Common Lisp为此提供了一种语法。 匿名函数也可以存储为全局函数: 带引号的lambda表达式