我想以下代码:
jQuery("#mybutton").click(function(){
//do something
});
我怎么能记得这个函数“匿名”?,我不能给这个函数命名:
var xfun = function(){
//do something
}
jQuery("#mybutton").click(xfun);
我可以这样做:
var working = false;
jQuery("#mybutton").click(function(){
if (working){
var _this = this;
_this._eventType = e.type;
setTimeout(function() { jQuery(_this).trigger(_this._eventType); }, 200);
return false;
}
//do something
});
我需要的是这样的事情:
var working = false;
jQuery("#mybutton").click(function(){
if (working){
setTimeout( this_function, 200);
return false;
}
//do something
});
感谢。
修改
解决方案:
jQuery("#mybutton").click(function(){
if (working){
var fn = arguments.callee;
var _this = this;
setTimeout(function(){fn.call(_this);}, 200);
return false;
}
//do something
});
答案 0 :(得分:20)
您确实可以命名您的匿名函数:
jQuery("#mybutton").click(function doWork(){
if (working){
setTimeout(doWork, 200);
return false;
}
//do something
});
您还可以使用arguments.callee
:
jQuery("#mybutton").click(function(){
if (working){
setTimeout(arguments.callee, 200);
return false;
}
//do something
});
我会和前者一起去。
答案 1 :(得分:1)
你能解释为什么你不能命名这个功能吗?您可以使用arguments.callee
来获取对当前函数的引用,但这已被弃用,我不确定它在当前浏览器中有多少支持。