模块 global

全局对象,所有脚本均可以访问的基础对象

对象

Buffer

二进制数据缓存对象,用于 io 读写的数据处理,参见 Buffer 对象。

Buffer global.Buffer;

Int64

64位整数对象,参见 Int64 对象。

Int64 global.Int64;

console

控制台访问对象

console global.console;

process

控制台访问对象

process global.process;

静态函数

run

运行一个脚本

static global.run(String fname,
    Array argv = []);

调用参数:


require

加载一个模块并返回模块对象,更多信息参阅 @ref module

static Value global.require(String id);

调用参数:

返回结果:

require 可用于加载基础模块,文件模块。

基础模块是沙箱创建时初始化的模块,引用时只需传递相应的 id,比如 require("net")。

文件模块是用户自定义模块,引用时需传递以 ./ 或 ../ 开头的相对路径。文件模块支持 .js, .jsc 和 .json 文件。

文件模块也支持 package.json 格式,当模块为目录结构时,require 会先查询 package.json 中的 main,未发现则尝试加载路径下的 index.js, index.jsc 或 index.json。

若引用路径不是 ./ 或 ../ 开头,并且非基础模块,require 从当前模块所在路径下的 node_modules 查找,并上级目录递归。

基础流程如下:

%0 start 起始 is_native 内置模块? start->is_native resolve path.resolve has_file 原名存在? resolve->has_file search 从当前路径 向上递归查找 node_modules search->has_file load 加载 end 返回 load->end is_native->end is_mod 模块? is_native->is_mod is_mod->search is_abs 绝对路径? is_mod->is_abs is_abs->resolve is_abs->has_file has_file->load has_ext 增加 .js 存在? has_file->has_ext has_ext->load has_package /package.json 存在? has_ext->has_package has_main main 存在? has_package->has_main has_index index.js 存在? has_package->has_index has_main->load has_main->has_index has_index->load has_index->end

clearInterval

清除指定的定时器

static global.clearInterval(Timer t);

调用参数:


clearTimeout

清除指定的定时器

static global.clearTimeout(Timer t);

调用参数:


clearImmediate

清除指定的定时器

static global.clearImmediate(Timer t);

调用参数:


setInterval

每间隔指定的时间后调用函数

static Timer global.setInterval(Function callback,
    Integer timeout);

调用参数:

返回结果:


setTimeout

在指定的时间后调用函数

static Timer global.setTimeout(Function callback,
    Integer timeout);

调用参数:

返回结果:


setImmediate

下一个空闲时间立即执行回调函数

static Timer global.setImmediate(Function callback);

调用参数:

返回结果:


GC

强制要求进行垃圾回收

static global.GC();

repl

进入交互模式,可以交互执行内部命令和代码,仅在启动 js 可以引用

static global.repl(Array cmds = []);

调用参数:

参数 cmd 格式如下:

[{
        cmd: ".test",
        help: "this is a test",
        exec: function(argv) {
            console.log(argv);
        }
    },
    {
        cmd: ".test1",
        help: "this is an other test",
        exec: function(argv) {
            console.log(argv);
        }
    }
]

进入交互模式,可以交互执行内部命令和代码,仅在启动 js 可以引用

static global.repl(Stream out,
    Array cmds = []);

调用参数:

同一时刻只允许一个 Stream repl,新建一个 Stream repl 时,前一个 repl 将被关闭。

参数 cmd 格式如下:

[{
        cmd: ".test",
        help: "this is a test",
        exec: function(argv) {
            console.log(argv);
        }
    },
    {
        cmd: ".test1",
        help: "this is an other test",
        exec: function(argv) {
            console.log(argv);
        }
    }
]

静态属性

Master

Worker, Worker 宿主对象,仅在 Worker 入口脚本有效

static readonly Worker global.Master;

global

Object, 全局对象

static readonly Object new global;

argv

Array, 获取当前脚本的运行参数,启动 js 获取进程启动参数,run 执行的脚本获取传递的参数

static readonly Array global.argv;

__filename

String, 当前脚本文件名

static readonly String global.__filename;

__dirname

String, 当前脚本所在目录

static readonly String global.__dirname;