Javascript jQuery-检查是否定义了函数

Javascript jQuery-检查是否定义了函数,javascript,jquery,Javascript,Jquery,我一辈子都不知道该怎么做。我的jquery名称以某种方式隔开,因为它以NWO.{function name}作为前缀,使其更有条理。看起来是这样的: var NWO = NWO || {} NWO.Chat = (function() { return{ init : function($objects) { console.log('do something'); } } } }()); jQuery(document).ready(functio

我一辈子都不知道该怎么做。我的jquery名称以某种方式隔开,因为它以NWO.{function name}作为前缀,使其更有条理。看起来是这样的:

var NWO = NWO || {}

NWO.Chat = (function() {
   return{
   init : function($objects) {
   console.log('do something');         
   } }
}
}());

jQuery(document).ready(function(){
  NWO.Chat.init($('div').find('a.chat'));
});
现在聊天元素不在每个页面上,因此在某些不存在聊天链接的页面上,我会得到一个NWO.chat未定义。我认为对于没有聊天链接的页面,我可以这样做以避免错误

if(jQuery().NWO.Chat){ NWO.Chat.init($('div').find('a.chat')); }


但这两种方法似乎都不起作用,我仍然会出错。当聊天链接不在页面上时,如何避免js错误。我头痛了好几个小时了。提前感谢。

您可以使用typeof通过将对象与“未定义”进行比较来检查对象是否已定义


通过将对象与“未定义”进行比较,可以使用typeof检查对象是否已定义


NWO
不是jQuery插件,因此与jQuery无关,它是一个对象(看起来像一个全局范围),所以您可以这样做

if (NWO && NWO.Chat && typeof NWO.Chat.init == 'function') {
    NWO.Chat.init($('div').find('a.chat'));
}

NWO
不是jQuery插件,因此与jQuery无关,它是一个对象(看起来像一个全局范围),所以您可以这样做

if (NWO && NWO.Chat && typeof NWO.Chat.init == 'function') {
    NWO.Chat.init($('div').find('a.chat'));
}

您还可以解决问题的根源:

NWO.Chat = (function() {
   return{
   init : function($objects) {
   console.log('do something');         
   } }
}      //  <<-----------REMOVE THIS CURLY BRACE
}());
NWO.Chat=(函数(){
返回{
init:function($objects){
log('do something');
} }

}//您还可以解决问题的根源:

NWO.Chat = (function() {
   return{
   init : function($objects) {
   console.log('do something');         
   } }
}      //  <<-----------REMOVE THIS CURLY BRACE
}());
NWO.Chat=(函数(){
返回{
init:function($objects){
log('do something');
} }

}//它将是未定义的,rather@danronmoon什么是未定义的,就像一个符咒!非常感谢@ArunPJohnyit的帮助将是
未定义的
,rather@danronmoon什么东西会像一个符咒一样未经修饰!非常感谢@ArunPJohny的帮助