Javascript 匿名函数中的静态变量
我尝试在JavaScript函数上模拟静态变量,目的如下:Javascript 匿名函数中的静态变量,javascript,jquery,variables,function,memoization,Javascript,Jquery,Variables,Function,Memoization,我尝试在JavaScript函数上模拟静态变量,目的如下: $.fn.collapsible = function() { triggers = $(this).children('.collapse-trigger'); jQuery.each(triggers, function() { $(this).click(function() { collapse = $(this).parent().find('.collapse'); }) }) }
$.fn.collapsible = function() {
triggers = $(this).children('.collapse-trigger');
jQuery.each(triggers, function() {
$(this).click(function() {
collapse = $(this).parent().find('.collapse');
})
})
}
如何保存“折叠”对象,使其不必在每次调用时都被“找到”?我知道使用命名函数可以执行“someFunction.myvar=collapse”之类的操作,但是像这样的匿名函数呢
谢谢 只要将函数分配给这样的变量,就应该能够以
$.fn.collable
的形式访问它,从而将变量分配为$.fn.collable.myvar
您可以将变量保存在函数中,如果没有当前函数名,请使用functionme.myVar=value
或arguments.callee.myVar=value
参数。被调用方
是您当前使用的函数。对于匿名函数,您可以使用返回函数的函数
例如:
var myAnonymousFunction = (function(){
var myFirstStatic = $("#anElement");
var anotherStatic = true;
return function(param1,param2) {
// myFirstStatic is in scope
// anotherStatic also
}
})();
应该像一个符咒一样工作,并且您可以确信静态初始化代码只执行一次。似乎找到了这个问题的更好答案 简而言之,您实际上可以在不污染名称空间的情况下为匿名函数命名,但仍然允许自引用
mything.prototype.mymethod = function myKindOfFakeName() {
myKindOfFakeName.called = true;
}
我很想用这个,但对我的大脑来说有点困惑。不管怎样,谢谢。那不起作用,因为那不是我试图附加变量的函数。谢谢。箭头功能怎么样?