寻找变量的更好方法是功能?

时间:2013-05-29 06:30:27

标签: javascript

哪一种更好的方法来查找变量是否为函数类型

typeof(methodName) == typeof(Function)

typeof methodName === 'function'

5 个答案:

答案 0 :(得分:5)

这里有两件事:

  1. 括号 - typeof是一个操作符,不是函数,不使用它们
  2. 'function'typeof Function相比(除非有人正在绕过并覆盖原生对象,否则将始终返回'function')。使用弦,它需要较少的工作,并且不受上述拧紧的影响。
  3. 即。使用:

    typeof methodName === 'function'
    

答案 1 :(得分:1)

通常的解决方案,例如你在jQuery源代码(example)中找到的解决方案,是第二个:

typeof value === 'function'

它比第一个更快,因为您不需要拨打第二个typeof,并且没有理由将第一个用作ECMAScript specifies that it has to be "function"

enter image description here

答案 2 :(得分:1)

第二个更好的性能并在许多javascript库中使用

答案 3 :(得分:0)

这是更好的方法

if (typeof methodName === 'function') {
   // Do your stuff
}

答案 4 :(得分:0)

typeof运算符返回一个字符串,指示未评估的操作数的类型。所以这是正确的 -

typeof methodName === 'function'

另请参阅:typeof