当我搜索函数名称时-当我看到如示例中的大量函数名称时,它变得笨拙。在大型代码库中,我在搜索如何以及从何处调用函数时浪费时间:
function do_something()
{
if (typeof do_something.flag == "undefined")
{
do_something.flag = true;
}
if (do_something.flag == null)
{
do_something.flag = true;
}
}
在这里,当我搜索do_something以便可以从被调用的地方查看时,我会发现很多由do_something.flag1
,do_something.flag2
等组成的行,这些行在大多数情况下没有任何用处这样的搜索。在大型函数中,有很多这样的行占用搜索输出。
我有另一种情况。在(Netbeans)IDE中,我想执行Ctrl-F do_something
函数以查找在文件中的调用位置。现在,我发现在函数本身中按F3键可以在包含do_something.var1=5
等内容的行上进行迭代。
总之,创建对象全局变量时,有什么方法可以减少函数中函数名的使用?
我的功能要长得多,但是我将给出导致此问题的中级功能的真实示例:
function slow_down_clicks(label, userfunc, timeinmsec)
{
console.log("slow_down_clicks=" + label);
if (typeof slow_down_clicks.myobj == UNDEFINED)
{
slow_down_clicks.myobj = {};
}
if (typeof slow_down_clicks.myobj[label] == UNDEFINED)
{
slow_down_clicks.myobj[label] = {
inqueue: false,
lastclickedtime: 0,
login_post_error_count: 0
};
}
var myfunc = function ()
{
console.log("Executing the user func");
slow_down_clicks.myobj[label].inqueue = false;
slow_down_clicks.myobj[label].lastclickedtime = new Date().getTime();
userfunc();
}
console.log("Due to error in home.aspx reloading it", ++slow_down_clicks.myobj[label].login_post_error_count);
if (slow_down_clicks.myobj[label].inqueue == false)
{
var diff = new Date().getTime() - slow_down_clicks.myobj[label].lastclickedtime;
console.log("diff=", diff, timeinmsec);
if (diff > timeinmsec)
{
myfunc(); //click login
}
else
{
console.log("queuing the request after:", timeinmsec - diff);
slow_down_clicks.myobj[label].inqueue = true;
setTimeout(function ()
{
console.log("called myfunc babalatec");
myfunc();
}, timeinmsec - diff);
}
}
else
{
console.log("Discarding this request...");
}
}
答案 0 :(得分:0)
我认为您可以将字段定义为普通变量,然后将代码放入其自己的文件中。然后,您可以在函数内部按其名称引用变量,因为它们在函数的闭包内。这些变量将无法在外部访问,因为您将其限制在其自己的文件中。
like:
values
将上述代码段放在单独的文件中,并在需要使用该功能时导入该功能。