【问题标题】:typeof variablename == function not workingtypeof 变量名 == 函数不起作用
【发布时间】:2016-05-01 07:47:11
【问题描述】:

我有一个带有函数名的数组,我希望下面的代码遍历带有函数名的数组并检查函数名是否存在。

如果 func_3 不存在,它应该检查 func_4 是否存在并且不停止循环,直到它检查数组中的所有函数是否都存在

我花了很多时间,但无法弄清楚我哪里出错了,请帮助

演示代码

          function func_1(){
              alert("FUNCTION EXISTS");
            }
            function func_2(){
              alert("FUNCTION EXISTS");
            }
            var functions = ["func_1", "func_2", "func_3", "func_4"];
            for(var i=0;i < functions.length; i++){
                var func_name = functions[i];
                if(typeof func_name=='function') {
                    alert("HELLO WORLD");
                }   
                alert("ITERATING WELL");
            }

【问题讨论】:

  • 你能发布一个演示来重现你的问题吗?这听起来不对……
  • 这应该适用于两种情况。您是否在控制台中收到任何特定错误?
  • @Spencer T. 我放了一个演示代码,请看一下
  • @elclanrs 我放了一个演示代码,你可以看看

标签: javascript function variables typeof


【解决方案1】:

假设你的函数如下:

function req(){
alert('hello world');
}

然后

console.log(typeof req) //output "function"

var a=req

console.log(typeof a) //output "function"

因为'req'和'a'都是函数类型。

================================================ ===========

更新

如果您仍想使用更新的代码调用 javascript 函数,请使用以下代码:

function func_1(){
alert("FUNCTION EXISTS");
}
function func_2(){
alert("FUNCTION EXISTS");
}
var functions = ["func_1", "func_2", "func_3", "func_4"];
for(var i=0;i < functions.length; i++){
var func_name = new Function(functions[i]);
if(func_name && typeof func_name=='function') {
alert("HELLO WORLD");
}   
alert("ITERATING WELL");
}

看来 'var foo = new Function(functions[i])' 就是你要找的东西

【讨论】:

  • @ark3typ3 哦,现在我明白了,发生的事情是当函数“req”不存在时,它正在打破循环。即使函数不存在,我如何保持循环进行迭代
  • @Manu 请添加代码。我们不明白你在说哪个循环
  • 您可以使用 if(reg and typeof req=='function') 来检查函数是否定义
  • @Anupam Singh 我已经放了一个演示代码,请看一下
  • 错误在行=> var functions = [func_1, func_2, func_3, func_4]; 1. 从数组元素中删除引号,2. 由于 func_3 和 func_4 未定义,因此您不能将它们添加到数组中。
【解决方案2】:

每当您遇到此类问题时,只需尝试 console.log(variable_name) 变量并使用脚本在页面上按 F12 来检查结果。在你的情况下 控制台.log(请求类型); console.log(typeof a);

【讨论】:

    猜你喜欢
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    相关资源
    最近更新 更多