Javascript - 是否可以在定义后调用函数本身,然后在范围内的其他地方将其作为函数引用

标签 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();
    }
})();

关于Javascript - 是否可以在定义后调用函数本身,然后在范围内的其他地方将其作为函数引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40546832/

相关文章:

javascript - 如何将值从一个属性传递到同一集合的另一个属性?

javascript - 将数据传递给其他组件的最佳方式是什么

javascript - 从 Webview 中加载的页面在 Safari 中打开链接

javascript - 模仿窗口。使用javascript在Opera中出错

javascript - 如何使用 Jest 和 enzyme 测试异步数据获取 react 组件?

javascript - B 做某事时如何更改 A 的 html 站点

javascript - 在叶子节点上设置点击事件

javascript - 在 Cordova/ionic 中写入文件不起作用

Javascript 在本地工作,但不在 Github Pages 网站上工作

javascript - Vue router 路由的安全性