有时候想判断一个js变量或者js函数时候存在,该怎么实现呢?
最近开发一款应用插件,兼容pjax会调用函数加载播放器,但是有时候页面没有音乐就不需要加载播放器,这时候调用函数就会报错。
怎么判断函数是否存在,调用这个函数,参数传入函数名存在返回真否则假
function isExitsFunction(funcName) {try { if (typeof(eval(funcName)) == "function") {return true;} } catch(e) {} return false;}
看看不是说播放器问题吗,我们需要新建一个函数,pjax调用它,这个新函数判断加载播放器函数时候存在,如果存在就加载,否则就退出。
eval 函数 执行一段js并返回值 typeof 函数 判断类型 try catch 代码块 捕捉错误并防止程序终止
typeof(eval(funcName)) == "function"
这行代码获取这个函数 判断类型时候为function
eval执行函数名如果存在就会成功(返回类型或者值) 如果失败就会throw error这时候套try catch语法就可以阻止错误丢出
catch(e) {}
很显然捕捉了错误 接着执行最后一行
return false;
js函数不存在