3 回答

TA贡献1853条经验 获得超9个赞
尝试这样的事情:
if (typeof me.onChange !== "undefined") {
// safe to use the function
}
或更好(根据UpTheCreek的评论)
if (typeof me.onChange === "function") {
// safe to use the function
}

TA贡献1825条经验 获得超4个赞
我有这个问题。
if (obj && typeof obj === 'function') { ... }
如果碰巧未定义obj,则会不断抛出引用错误。
最后,我执行了以下操作:
if (typeof obj !== 'undefined' && typeof obj === 'function') { ... }
一位同事向我指出的是检查,如果它的!== 'undefined',然后=== 'function'是多余的,当然。
更简单:
if (typeof obj === 'function') { ... }
更清洁,效果很好。

TA贡献1906条经验 获得超10个赞
如果您正在使用eval将字符串转换为函数,并且要检查此eval'd方法是否存在,则需要在eval中使用typeof和函数字符串:
var functionString = "nonexsitantFunction"
eval("typeof " + functionString) // returns "undefined" or "function"
不要颠倒这个,在eval上尝试使用typeof。如果执行ReferenceError,将抛出:
var functionString = "nonexsitantFunction"
typeof(eval(functionString)) // returns ReferenceError: [function] is not defined
添加回答
举报