【发布时间】:2017-11-08 15:13:10
【问题描述】:
这是Angular node_modules中uuid文件夹内v4.js文件的内容:
var rng = require('./lib/rng');
var bytesToUuid = require('./lib/bytesToUuid');
function v4(options, buf, offset) {
var i = buf && offset || 0;
if (typeof(options) == 'string') {
buf = options == 'binary' ? new Array(16) : null;
options = null;
}
options = options || {};
var rnds = options.random || (options.rng || rng)();
// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
rnds[6] = (rnds[6] & 0x0f) | 0x40;
rnds[8] = (rnds[8] & 0x3f) | 0x80;
// Copy bytes to buffer, if provided
if (buf) {
for (var ii = 0; ii < 16; ++ii) {
buf[i + ii] = rnds[ii];
}
}
return buf || bytesToUuid(rnds);
}
module.exports = v4;
我是用这个语句来导入函数的:
import { v4 as uuid } from 'uuid';
令我惊讶的是,调用 v4 函数有两种方式:
我可以使用:
uuid.v4();
或者干脆
uuid();
uuid() 怎么还调用 v4 函数?
【问题讨论】:
-
您可以同时调用它,因为别名在技术上 是 函数
v4,同时别名也具有对所有模块导出函数的函数引用. -
好吧,如果只是这样,它看起来就像一个全局函数(文件不是匿名函数)。也许这解释了它?可以肯定的是,请尝试在您的 Chrome 控制台中调用 v4 函数,如果它弹出,那么它是全局的。
标签: javascript angular typescript import