gpt4 book ai didi

javascript - 如何使用带有导出符号的谷歌闭包?

转载 作者:行者123 更新时间:2023-11-30 05:45:03 25 4
gpt4 key购买 nike

第 1 步:我创建一个 test.js:

var Helloworld = function()
{
console.log("Hi..");
}

goog.exportSymbol('Helloworld', Helloworld);

第二步:我使用闭包编译器编译上面的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 文件的脚本有什么问题?如果有人可以提供帮助,我将不胜感激。 google closure的文档和教程不是很直接。

最佳答案

Closure-library 旨在与您的源代码一起编译,以充分利用死代码消除。您缺少的是编译命令中正确的库源文件:

java -jar ../compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS
--js test.js --js closure-library/base.js
--js_output_file test_out.js

以上命令将只包含在闭包库的base.js 文件中定义的函数(其中包含goog.exportSymbol)。编译后,您的 test_out.js 将包含 goog.exportSymbol 的编译定义。

要更高级地使用闭包库,您需要正确使用 goog.require 调用并使用 Closure-builder解决依赖关系。

关于javascript - 如何使用带有导出符号的谷歌闭包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18435007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com