哪一种更好的方法来查找变量是否为函数类型
typeof(methodName) == typeof(Function)
或
typeof methodName === 'function'
答案 0 :(得分:5)
这里有两件事:
typeof
是一个操作符,不是函数,不使用它们'function'
或typeof Function
相比(除非有人正在绕过并覆盖原生对象,否则将始终返回'function'
)。使用弦,它需要较少的工作,并且不受上述拧紧的影响。即。使用:
typeof methodName === 'function'
答案 1 :(得分:1)
通常的解决方案,例如你在jQuery源代码(example)中找到的解决方案,是第二个:
typeof value === 'function'
它比第一个更快,因为您不需要拨打第二个typeof
,并且没有理由将第一个用作ECMAScript specifies that it has to be "function":
答案 2 :(得分:1)
第二个更好的性能并在许多javascript库中使用
答案 3 :(得分:0)
这是更好的方法
if (typeof methodName === 'function') {
// Do your stuff
}
答案 4 :(得分:0)