请考虑以下事项:
(function () {
var _searchUsers = function () {
console.log("Searching...");
};
var search = (function () {
_searchUsers();
this = function () {
_searchUsers();
}
})();
//Some onclick event handler
function click () {
search();
}
})();
在javascript中有更简洁的方法来实现此功能吗?我想声明一个函数并让它立即执行,这就是为什么我把它变成了一个IIFE(自执行函数)但我也希望在生命周期的后期在其他地方引用该函数脚本,例如当用户点击按钮并且"点击"上面调用了函数。
示例用例:
我有一个用户表,在页面加载时我想发出一个AJAX请求来立即获取用户,我还希望用户只需点击一下按钮就可以加载用户,我们说我有一个搜索框,可以将该文本发送到我的API并返回用户的姓名与给定文本匹配的内容。
上面的代码片段处理了这个要求,我只是想知道是否有更简洁的方法来实现这一点,而且我也只是想看看人们发布什么作为答案。
答案 0 :(得分:1)
这是另一种选择:
(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();
}
})();
答案 1 :(得分:0)
大多数情况下,我认为这是一个名为IIFE的函数,它在执行后自动返回。因此它可以在以后用于范围,因为它是一个命名函数。
(function () {
onClick(function MyFunction(){
// logic code goes here
return MyFunction;
}());
})();