我的问题与优化我的javascript代码以提高效率有关。
我有一个经常调用的函数,但内部的所有代码只需要调用一次,如下所示:
function removeBlankCanvas() {
if ( --numberOfChartsStillLoading == 0 ) {
//do stuff
}
}
这很好但是在 numberOfChartsStillLoading 为0之后,该函数仍被无数次调用,我知道它永远不会再为0。所以我正在考虑做这样的事情:
function removeBlankCanvas() {
if ( --numberOfChartsStillLoading == 0 ) {
//do stuff
removeBlankCanvas = function() {
return true;
}
}
}
这可能是更有效的代码吗?例如,如果该函数被调用了数百万次?我严格要求好奇心。
答案 0 :(得分:2)
您的性能瓶颈不太可能是简单的if语句。
这个技巧实际上可能导致意外的结果,因为函数是不可变的,并且即使在将名称引用更改为另一个函数之后,您很可能会有回调来保持对原始函数的引用。
我的2美分:找到要优化的真实性能问题。
答案 1 :(得分:0)
我认为你可以创建自定义事件并附加到调用者。 您可以根据所需的任何条件从呼叫者中删除该事件。