绑定事件处理程序时,我发现需要创建一个函数,因为它需要引用两次;一旦最初,一旦到事件绑定:
// 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;
})());
假设我在这两个实例之外没有使用过这个函数,那么这样做是否可行呢?
答案 0 :(得分:1)
嗯,大多数人都会坚持使用第一块,因为它清晰,简单,惯用。第二个块保存了一行代码,但代价是做一些奇怪的代码。如果您的代码做了一些奇怪的事情,那么很多读者可能会误解其行为,并且他们所做的任何更改都可能会引入缺陷。