检查是否已使用运行时表示法定义定义了jquery函数

时间:2014-07-29 10:34:48

标签: javascript jquery function declaration

美好的一天。

我开始对一个大项目进行代码审查,其中javascript代码已经由我之外的许多人编写。

我已经看到,在某个时刻有一个像以下那样的功能:

jQuery.cookie=function(name,value,options){...}

所以基本上,有人想要定义一个名为jQuery.cookie的函数。现在,由于我无法忍受这一点,我想至少在声明此函数之前检查jQuery.cookie(真正的库)是否存在。在这种情况下,确实:

if(jQuery.cookie!== 'undefined') return true;

应该成功吗?

3 个答案:

答案 0 :(得分:2)

if(typeof jQuery.cookie!== 'undefined') return true; // quote to undefined

另外,你想尝试这样使用吗?

if(typeof jQuery.cookie === 'undefined')
jQuery.cookie=function(name,value,options){...}

答案 1 :(得分:1)

您缺少typeof关键字和引号:

if(typeof jQuery.cookie !== 'undefined') return true;

你也可以测试它是否是一个函数:

if(typeof jQuery.cookie !== 'function') return true;

答案 2 :(得分:0)

我个人更喜欢这种方法,因为无论引擎如何,我总能在完全相等===上进行转发

var undefType = typeof udefined;
if(typeof jQuery.cookie !== undefType) return true;