如何使用indexOf在数组中查找函数

时间:2016-05-25 18:14:50

标签: javascript arrays indexing

我有一系列功能。

var arrOfFunc = [];

我有推送到数组的脚本,这是一个重绘谷歌图表的功能

根据我决定放在页面上的图表数量,可以有多种功能

var chart = "done";

function drawChart(){ ... } //each draw chart function belongs to its own scope.

arrOfFunc.push(drawChart);

$(window).resize(function(){
   if(chart=="done"){
     chart = "waiting";
     setTimeout(function(){
       for(var i in arrOfFunc ){
         arrOfFunc[i]();
       }
       chart = "done"
     },1000);
});

问题是我有一个网格刷新按钮重新运行整个功能:

  • 进行api通话
  • 使用drawChart()
  • 重新呈现网格
  • 而不是将drawChart()函数推送到arrOfFunc;

在决定是否将函数推送到arrOfFunc对象之前,如何检查函数是否已存在于数组中?

.indexOf()仅适用于字符串。

2 个答案:

答案 0 :(得分:1)

indexOf标识数组中的对象。

由于Javascript将所有函数视为对象,因此indexOf也应该对函数起作用。

答案 1 :(得分:0)

反对JS的基本原则来制作多个drawChart()函数。您只需声明一次并从任何对象调用它。 " this"您应该在函数中引用的将表示您从中调用它的对象。你最好学习this和JS中的范围。我建议你看一下this