Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 共通;功能_Javascript_Require_Commonjs - Fatal编程技术网

Javascript 共通;功能

Javascript 共通;功能,javascript,require,commonjs,Javascript,Require,Commonjs,我使用的是符合CommonJS标准的反草稿加载程序。我试图了解一切是如何运作的,但现在我需要一些建议 假设我想得到一个时间戳,我这样做: define(function(){ return (new Date()).getTime() }); 然后我执行一个简单的require并尝试运行它: require(['timestamp'],function(timestamp) { console.log(timestamp()) console.log(timestamp

我使用的是符合CommonJS标准的反草稿加载程序。我试图了解一切是如何运作的,但现在我需要一些建议

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

define(function(){
    return (new Date()).getTime()
});
然后我执行一个简单的require并尝试运行它:

require(['timestamp'],function(timestamp) {
    console.log(timestamp())
    console.log(timestamp())
    console.log(timestamp())
}
现在我得到的是相同的时间戳,从计算时间戳函数的时候算起,是3次。define()是否自动执行闭包,或者发生了什么


我正在学习函数式编程,因此不了解如何实现这些可重用的小函数有点妨碍了我的工作:)

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


在上面的示例中,在您需要“timestamp”模块之后,Backdraft loader(假设它与RequireJS的工作原理相同,因为我不知道Backdraft)将帮助创建新的时间戳并缓存它。所以每次你调用这个函数。它返回相同的值。

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

在上面的示例中,在您需要“timestamp”模块之后,Backdraft loader(假设它与RequireJS的工作原理相同,因为我不知道Backdraft)将帮助创建新的时间戳并缓存它。所以每次你调用这个函数。它返回相同的值