我正在尝试一些HTML5画布绘图,我遇到了高级编译模式的问题.我想用mozDash
Mozilla浏览器的属性来举例说明(虽然这个问题在属性优化功能上非常通用)https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D#Gecko-specific_attributes
javascript canvas.mozDash = ...
代码可以在Clojurescript中表示为[1] (set! (.-mozDash canvas) ...)
或[2] (aset canvas "mozDash" ...)
.
我之前使用过[1]并且它在大多数情况下都有效,但是使用该mozDash
属性,mozDash
标识符在高级编译结果中消失了.因此我尝试了[2]并且似乎mozDash
使用aset
变体保留了标识符.
因此,我的问题是:
(.-fillStyle canvas)
?我有点怀疑默认情况下标准HTML属性受到保护,mozDash
而不支持非标准属性(如).
允许闭包编译器重命名直接访问的属性,这些属性未在外部或导出中指定.
请参阅https://developers.google.com/closure/compiler/docs/api-tutorial3#propnames
具体而言,(aset x "y" z)
转换x["y"] = z
为免除最小化,(set! (.-y x) z)
转换为x.y = z
并且可以最小化,除非将xy指定为extern或导出.
我假设你在用于Canvas的外部文件中没有指定mozDash属性.
归档时间: |
|
查看次数: |
156 次 |
最近记录: |