vm.createContext([contextObject[, options]])
历史
版本 | 变化 |
---|---|
v14.6.0 | 现在支持 |
v10.0.0 | 第一个参数不能再是函数。 |
v10.0.0 | 现在支持 |
v0.3.1 | 添加于:v0.3.1 |
参数
contextObject
<Object>options
<Object>name
<string> 新创建的上下文的人类可读名称。 默认:'VM Context i'
,其中i
是已创建上下文的升序数字索引。origin
<string> Origin 对应于新创建的用于显示目的的上下文。源的格式应类似于 URL,但仅包含方案、主机和端口(如有必要),例如URL
url.origin
''
。codeGeneration
<Object>microtaskMode
<string> 如果设置为afterEvaluate
,则微任务(通过Promise
s 和async function
s 安排的任务)将在脚本通过script.runInContext()
timeout
和breakOnSigint
范围内。
- 返回: <Object> 上下文对象。
如果给定 contextObject
,则 vm.createContext()
方法将 prepare
that object 以便它可以用于调用
或 vm.runInContext()
。在此类脚本中,script.runInContext()
contextObject
将是全局对象,保留其所有现有属性,但也具有任何标准global object 具有的内置对象和函数。在 vm 模块运行的脚本之外,全局变量将保持不变。
const vm = require('node:vm');
global.globalVar = 3;
const context = { globalVar: 1 };
vm.createContext(context);
vm.runInContext('globalVar *= 2;', context);
console.log(context);
// Prints: { globalVar: 2 }
console.log(global.globalVar);
// Prints: 3
如果 contextObject
被省略(或显式传递为 undefined
),则将返回一个新的空 contextified 对象。
vm.createContext()
方法主要用于创建可用于运行多个脚本的单个上下文。例如,如果模拟 Web 浏览器,该方法可用于创建表示窗口全局对象的单个上下文,然后在该上下文中一起运行所有 <script>
标记。
提供的上下文的name
和origin
通过 Inspector API 可见。
相关用法
- Node.js vm.createContext()用法及代码示例
- Node.js vm.SyntheticModule.setExport(name, value)用法及代码示例
- Node.js vm.SourceTextModule.createCachedData()用法及代码示例
- Node.js vm.Module用法及代码示例
- Node.js vm.runInThisContext(code[, options])用法及代码示例
- Node.js vm.isContext()用法及代码示例
- Node.js vm.measureMemory([options])用法及代码示例
- Node.js vm.runInNewContext()用法及代码示例
- Node.js vm.SyntheticModule用法及代码示例
- Node.js vm.runInNewContext(code[, contextObject[, options]])用法及代码示例
- Node.js vm.Script.createCachedData()用法及代码示例
- Node.js vm.runInThisContext()用法及代码示例
- Node.js vm.Script.runInNewContext([contextObject[, options]])用法及代码示例
- Node.js vm.runInContext()用法及代码示例
- Node.js vm.Script.runInThisContext([options])用法及代码示例
- Node.js vm.runInContext(code, contextifiedObject[, options])用法及代码示例
- Node.js vm.Script.runInContext(contextifiedObject[, options])用法及代码示例
- Node.js vm.Module.link(linker)用法及代码示例
- Node.js v8.getHeapSpaceStatistics()用法及代码示例
- Node.js v8.deserializer.readRawBytes()用法及代码示例
- Node.js v8.deserializer.readUint32()用法及代码示例
- Node.js v8.serializer.writeRawBytes()用法及代码示例
- Node.js v8.writeHeapSnapshot([filename])用法及代码示例
- Node.js v8.Deserializer.readUint32()用法及代码示例
- Node.js v8.getHeapCodeStatistics()用法及代码示例
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 vm.createContext([contextObject[, options]])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。