1

我正在使用遵循 CommonJS 标准的 Backdraft 加载程序。我试图了解一切是如何运作的,但现在我需要一些建议。

假设我想获得一个时间戳,我这样做:

define(function(){
    return (new Date()).getTime()
});

然后我做了一个简单的要求并尝试运行它:

require(['timestamp'],function(timestamp) {
    console.log(timestamp())
    console.log(timestamp())
    console.log(timestamp())
}

现在我得到的是从时间戳函数被评估时起 3 次相同的时间戳。define() 会自动关闭还是发生了什么?

我正在学习函数式编程,所以不了解如何执行这些可以重用的小功能有点妨碍我的努力:)

4

1 回答 1

1

这与函数式编程无关。这是关于 CJS 模块定义的。

在上面的示例中,在您需要“时间戳”模块后,Backdraft 加载器(假设它与 RequireJS 相同,因为我不知道 Backdraft)将有助于新的时间戳并缓存它。所以每次你调用那个函数。它返回相同的值。

于 2012-01-11T11:59:11.910 回答