Javascript -是否有可能在函数定义后调用它自己,然后在作用域的其他地方作为函数被引用?



考虑以下内容:

 (function () {
     var _searchUsers = function () {
         console.log("Searching...");
     };
     var search = (function () {
         _searchUsers();
         this = function () {
              _searchUsers();
         }
     })();
     //Some onclick event handler
     function click () {
         search();
     } 
 })();

有没有更简洁的方法在javascript中实现这个功能?我想声明一个函数并让它立即执行,这就是为什么我把它变成了一个IIFE(自执行函数),但我也想在脚本生命周期的其他地方引用这个函数,比如当用户单击按钮时,上面调用了"click"函数。

用例:

我有一个用户表,在页面加载时,我想让AJAX请求立即获取用户,我还希望用户能够在点击按钮时加载用户,假设我有一个搜索框,它将文本发送到我的API并返回用户的名字匹配给定的文本。

上面的代码片段处理这个要求,我只是想知道是否有一个更简洁的方法来实现这一点,我也只是有兴趣看看人们发布的答案。

这是另一个选项:

(function () {
    var _searchUsers;            // Declare the variable like you did already
    (_searchUsers = function (){ // Assign the function, and immediately call it.
        console.log("Searching...");
    })();
    //Some onclick event handler
    function click () {
        _searchUsers();
    }
})();

大多数情况下,我看到这被实现为一个命名的IIFE函数,在执行后返回它自己。因为它是一个命名函数,所以可以稍后在作用域中使用。

(function () {
     onClick(function MyFunction(){
          // logic code goes here
          return MyFunction;
     }());
})();

相关内容

最新更新