0

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

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

假设我从未在这两个实例之外使用此功能,这样做是否可行?

4

1 回答 1

1

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

于 2014-11-12T22:33:10.357 回答