【发布时间】:2016-04-15 18:35:12
【问题描述】:
我偶然发现了 google 闭包编译器 ADVANCED 模式的一个奇怪行为,但我找不到解释:它重命名了 CanvasRenderingContext2D 的函数 resetTransform
由于生产代码中出现问题,我无法在此处复制粘贴,但我已经能够在此处的案例中重现该问题 https://www.dropbox.com/s/ic9l755dvgkkqv7/case.zip?dl=0
有问题的 sn-p 是:
context.resetTransform ()
context.translate ( 0 , canvas.height )
对应于编译器输出:
c.a();c.translate(0,b.height);
如果我没记错的话,resetTransform 应该保留它的名字,就像它发生在 CanvasRenderingContext2D 的其他成员身上一样,例如翻译。 浏览器找不到“a”函数并生成“TypeError: c.a is not a function”
“c”实际上是 CanvasRenderingContext2D 的一个实例,事实上,如果我将 c.a 更改为 c.resetTransform,脚本就可以完美运行。
我做错了什么?
在任何地方都找不到有关此问题的参考
目前我正在使用最新的编译器版本,下载自: https://dl.google.com/closure-compiler/compiler-latest.zip
java 版本 si 1.7.0_80,但即使是旧版本,问题仍然存在
【问题讨论】:
-
顺便说一句,您可能应该将其标记为“javascript”问题,而不是“java”(当然闭包编译器是用 java 编写的,但您的问题是关于 javascript)。
标签: javascript html5-canvas google-closure-compiler