Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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 setTimeout和google闭包编译器_Javascript_Google Closure Compiler - Fatal编程技术网

javascript setTimeout和google闭包编译器

javascript setTimeout和google闭包编译器,javascript,google-closure-compiler,Javascript,Google Closure Compiler,我有几个setTimeout语句,在通过闭包编译器运行代码后,它们似乎不起作用。 我有三种陈述: 1) 调用函数: setTimeout("MyFunctionName()", 3000); 2) jQuery 3) 全局变量设置 setTimeout("MyGlobalVar = 2;", 2000); 优化此类代码的最佳方法是什么 谢谢您的建议。闭包编译器重命名您的函数和变量,这就是代码中断的原因。作为一种解决方案,使用如下匿名函数,因此这些调用也会被重命名 (一) 或者(如jfrien

我有几个setTimeout语句,在通过闭包编译器运行代码后,它们似乎不起作用。 我有三种陈述:

1) 调用函数:

setTimeout("MyFunctionName()", 3000);
2) jQuery

3) 全局变量设置

setTimeout("MyGlobalVar = 2;", 2000);
优化此类代码的最佳方法是什么


谢谢您的建议。

闭包编译器重命名您的函数和变量,这就是代码中断的原因。作为一种解决方案,使用如下匿名函数,因此这些调用也会被重命名

(一)

或者(如jfriend00所述),只要函数没有参数:

setTimeout( MyFunctionName, 3000);
(二)

(三)


至于(2),我不确定这是否是代码中断的唯一原因。

闭包编译器重命名函数和变量,这就是代码中断的原因。作为一种解决方案,使用如下匿名函数,因此这些调用也会被重命名

(一)

或者(如jfriend00所述),只要函数没有参数:

setTimeout( MyFunctionName, 3000);
(二)

(三)


至于(2),我不确定这是否是代码中断的唯一原因。

真正的问题是,您将代码作为字符串传递给
setTimeout
,您应该永远不要这样做,因为它在功能上等同于使用
eval


,包括闭包编译器无法“看到”隐藏在字符串中的代码这一事实。

真正的问题是,您将代码作为字符串传递给
setTimeout
,您应该永远不要这样做,因为它在功能上等同于使用
eval


,包括闭包编译器无法“看到”隐藏在字符串中的代码这一事实。

第一项可以是:
setTimeout(MyFunctionName,3000)。在这种情况下不需要匿名函数。只需保留它,以涵盖更一般的情况,即存在参数时。在情况2中,有时我使用布尔值作为参数。我就这样吧?@frenchie如果你使用匿名函数,你就在保存端。第一项可以是:
setTimeout(MyFunctionName,3000)。在这种情况下不需要匿名函数。只需保留它,以涵盖更一般的情况,即存在参数时。在情况2中,有时我使用布尔值作为参数。“我就这样吧?”@frenchie如果你使用匿名功能,你无论如何都是站在拯救的一边。
setTimeout( MyFunctionName, 3000);
setTimeout( function() { $('#MyDiv').find('.MyClass').addClass('TheNewClass'); }, 1000);
setTimeout( function(){ MyGlobalVar = 2; }, 2000);