Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果函数不存在,则编写函数-javascript_Javascript_Function_Typeof - Fatal编程技术网

如果函数不存在,则编写函数-javascript

如果函数不存在,则编写函数-javascript,javascript,function,typeof,Javascript,Function,Typeof,在php中,我编写了以下内容 <?php if(x != 0) { echo "function myfunction(){};"; } ?> 这在firefox中非常有效,但在chrome中,即使typeof equals函数仍然会进入并创建空函数。我找不到chrome的解决方案,我尝试了if(!myfunction)、if(typeof window.myfunction!=“function”),但在firefox中一切都正常的情况下,chrome在这里似乎什么都不起

在php中,我编写了以下内容

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

这在firefox中非常有效,但在chrome中,即使typeof equals函数仍然会进入并创建空函数。我找不到chrome的解决方案,我尝试了if(!myfunction)、if(typeof window.myfunction!=“function”),但在firefox中一切都正常的情况下,chrome在这里似乎什么都不起作用。有什么想法吗?

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

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

(我正在使用
窗口
,因为您的最后一段建议您需要一个全局函数)

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

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

还要尽量将js函数保留在名称空间中,这样可以避免将来与其他js库发生冲突。

仍然没有答案吗?我有同样的问题,下面的解决方案对我不起作用。@BretThomas如果有效,请将其标记为答案。
if(typeof myFunction !== 'function'){
    window.myFunction = function(){}; // for a global function or
    NAMESPACE.myFunction = function(){}; // for a function in NAMESPACE 
}