为什么多次运行CoffeeScript编译器会产生不同的输出?
我试图编译非常简单的咖啡脚本:
n = 4;
使用代码
require('coffee-script').compile(str);
我在解决scheme中多次执行此操作,而无需caching结果。 我第一次这样做,我得到:
(function() { var n; n = 4; }).call(this);
但如果我再打电话给我,我会得到:
n = 4;
为什么我不能第二次得到包装函数,我怎样才能让它每次都得到相同的结果。
无法重现,我每次都得到相同的(包装)代码。
使用coffee.compile(str, { bare: false })
来强制封闭包装。
我认为,由于范围问题,可能会发生(即不同的产出)。
通常你只需要一个variablesvar
语句。 而且似乎是在第一次调用时,所有需要的声明都被创build,而第二个调用只是重用它们。
我相信这可能是因为使用了相同的require('coffee-script')
实例。
编译只是第二次出于某种原因没有工作。 CoffeeScript代码总是被封装在一个函数中。