如何使用谷歌关闭与导出的符号
How to use google closure with exported symbols?
步骤1:我创建一个test.js:
var Helloworld = function()
{
console.log("Hi..");
}
goog.exportSymbol('Helloworld', Helloworld);
步骤2:我使用闭包编译器编译上述javascript文件
java -jar ../compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS --js test.js --js_output_file test_out.js
我可以看到test_out.js:的内容
goog.a("Helloworld",function(){console.log("Hi..")});'
我不知道"goog.a"是什么意思。
步骤3:我创建一个test.html:
<html>
<head><title>Hello World</title></head>
<body>
<script src="closure-library/closure/goog/base.js"></script>
<script src="test_out.js"></script>
<script>
var v = new Helloworld();
</script>
</body>
</html>
步骤4:在浏览器中加载html。
但是,找不到Helloworld符号。我编译javascript文件的脚本出了什么问题?如果有人能帮忙,我将不胜感激。谷歌关闭的文档和教程不是很简单。
Closure库设计为使用源代码进行编译,以充分利用死代码消除。您缺少的是编译命令中正确的库源文件:
java -jar ../compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS
--js test.js --js closure-library/base.js
--js_output_file test_out.js
上述命令将只包括闭包库(包括goog.exportSymbol
)的base.js文件中定义的函数。编译时,test_out.js
将包含goog.exportSymbol
的编译定义。
为了更高级地使用闭包库,您需要正确地使用goog.require
调用,并使用闭包生成器来解决依赖关系。
在test.html中,您是否尝试过替换:
<script>
var v = new Helloworld();
</script>
带有
<script>
var Helloworld = goog.getObjectByName('Helloworld');
var v = new Helloworld();
</script>
相关文章:
- 使用相同的数据集绘制各种符号
- 如何使用JavaScript模拟x86无符号32位整数乘法
- AngularJS中货币过滤器的Javascript代码无法使用自定义符号
- TypeScript - 如何获取 HTML 元素,例如在 Javascript 中使用美元符号 ($)
- 如何使用 JQuery 显示带有加载符号的数据表
- JavaScript:从具有使用 # 符号的路由的 URL 获取查询字符串
- 在传单包装中使用适当的符号(= 或 ~)
- 使用Javascript创建类似表情符号的键盘
- 为什么我的代码没有'不允许使用特定符号
- 如何使用javascript获取&使用字符偏移量设置插入符号位置
- 如何使用RegEx转换文本中的表情符号
- Meteor.js:如何避免使用点符号进行无用的刷新/计算/重新渲染
- text使用shift键和箭头键时的区域插入符号位置
- 引号使用不同的符号
- HTML Texeare 插入符号控件使用左、右、下、上、主页和结束虚拟按钮
- 如何使用Javascript和Angular显示货币符号
- jQuery在页面加载排序时不会使用前导货币符号进行排序
- 将 Object.defineProperties 与符号一起使用是否有效
- WebForm_PostBackOptions 将 actionUrl 与 & 符号一起使用
- 列表项显示时不带符号,使用文本代替