当绑定(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/