【问题标题】:if function does not exist write function - javascript如果函数不存在写函数 - javascript
【发布时间】:2012-02-08 23:31:19
【问题描述】:

在 php 中我正在写以下内容

<?php
if(x != 0) {
echo "function myfunction(){};";    
}
?>

在javascript中我想测试函数是否存在,如果不写出一个空函数

if(typeof myfunction != 'function'){
    function myfunction(){};
}

这在 Firefox 中效果很好,但在 chrome 中,即使 typeof 等于函数,它仍然会进入并创建空函数。我找不到 chrome 的解决方法,我试过 if(!myfunction), if(typeof window.myfunction != 'function) 但是当一切似乎都在 Firefox 中工作时,chrome 似乎没有任何工作。有什么想法吗?

【问题讨论】:

  • 还是没有答案?我有同样的问题,下面的解决方案对我不起作用。

标签: javascript function typeof


【解决方案1】:

使用函数表达式,而不是函数声明。

if(typeof myfunction != 'function'){
   window.myfunction = function(){};
}

(我使用window,因为你的最后一段建议你想要一个全局函数)

【讨论】:

  • @BretThomas 如果可行,请将其标记为答案。
【解决方案2】:

您应该使用严格的比较运算符!==

if(typeof myFunction !== 'function'){
    window.myFunction = function(){}; // for a global function or
    NAMESPACE.myFunction = function(){}; // for a function in NAMESPACE 
}

同时尝试将 js 函数保留在命名空间中,这样可以避免将来与其他 js 库发生冲突。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多