javascript - JavaScript 匿名函数可以返回自身吗?

标签 javascript jquery event-handling self-invoking-function

当绑定(bind)事件处理程序时,我发现需要创建一个函数,因为它需要被引用两次;初始一次,事件绑定(bind)一次:

// Define function
function doSomething(){...}

// Call function initially
doSomething();

// Pass function as the event handler
$("#theElement").on("click", doSomething);

但后来我意识到我可以通过传递一个自调用匿名函数作为事件处理程序并返回 arguments.callee 来开始执行此操作。 :

// Much cleaner!
$("#theElement").on("click", (function(){
    ...
    return arguments.callee;
})());

假设我在这两个实例之外从未使用过此函数,这样做是否合适?

最佳答案

嗯,大多数人都会坚持使用第一个 block ,因为它清晰、简单且惯用。第二个 block 节省了一行代码,但代价是代码做了一些奇怪的事情。如果您的代码做了一些奇怪的事情,那么很多读者可能会误解其行为,并且他们所做的任何更改都可能会引入缺陷。

关于javascript - JavaScript 匿名函数可以返回自身吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26897711/

相关文章:

javascript - 我试图通过按 Enter 键而不是提交来在输入字段中添加换行符

javascript - 当我在 MVC C# 中将可插入项目附加/链接到主项目时,我无法注销?

javascript - jquery - 如何使用 id 标签更改输入选择器

javascript - JS如何限制鼠标点击复选框和触发器?

javascript - jquery 在其他事件处理程序中调用事件处理程序函数

javascript - 无法获取 handleClick 函数来调用其他函数,而不是自行完成它们所做的工作

windows-phone-7 - 列表项对第二次点击事件无响应

c# - RadGrid - 每列批量编辑多个编辑模板

javascript - $在 vue.js,es6 语法中从子级向父级发出事件

javascript - 如何创建一个出现在点击菜单项上的框?