vm.createContext()方法用于创建单个上下文,该上下文可用于运行多个脚本。此外,如果忽略了声明的contextObject,则返回一个新的空上下文对象。但是,如果声明了contextObject,则此方法将准备好该对象,以便可以在调用vm.runInContext()或script.runInContext()时使用它。其中contextObject将是此类脚本中的全局对象,这些脚本可以保留其活动属性。在脚本之外,它由vm模块运行,甚至全局变量也保持不变。
用法:
vm.createContext( contextObject, options )
参数:此方法接受两个参数,如avobe所述,如下所述:
- contextObject:它是被上下文化的对象。
- options:它是可选的,并返回Object。
返回值:它返回上下文对象。
以下示例说明了Node.js中createContext()方法的用法:
范例1:
// Node.js program to demonstrate the
// vm.createContext([contextObject[, options]])
// method
// Including util and vm module
const util = require('util');
const vm = require('vm');
// Assigning value to the global variable
global.globalVar = 10;
// Defining Context object
const object = { globalVar:4 };
// Contextifying stated object
// using createContext method
vm.createContext(object);
// Compiling code
vm.runInContext('globalVar /= 2;', object);
// Displays the context
console.log("Context:", object);
// Dsiplays value of global variable
console.log("Global Variable is ", global.globalVar);
输出:这里,上下文中的globalVar在输出中为2(4/2 = 2),但是globalVar的值仍为10。
Context: { globalVar:2 } Global Variable is 10
范例2:
// Node.js program to demonstrate the
// vm.createContext([contextObject[, options]])
// method
// Including util and vm module
const util = require('util');
const vm = require('vm');
// Assigning value to the global variable
global.globalVar = 5;
// Defining Context object
const object = { globalVar:20 };
// Contextifying stated object
// using createContext method
vm.createContext(object);
// Compiling code
vm.runInContext('globalVar += 2;', object);
// Displays the context
console.log("Context:", object);
// Dsiplays value of global variable
console.log("Global Variable is ", global.globalVar);
输出:在这里,上下文中的globalVar在输出中为22(20 + 2 = 22),但globalVar的值仍为5。
Context: { globalVar:22 } Global Variable is 5
参考: https://nodejs.org/api/vm.html#vm_vm_createcontext_contextobject_options
相关用法
- Node.js GM drawRectangle()用法及代码示例
- Node.js GM minify()用法及代码示例
- Node.js GM magnify()用法及代码示例
- Node.js GM whiteThreshold()用法及代码示例
- Node.js GM whitePoint()用法及代码示例
- Node.js GM write()用法及代码示例
- Node.js GM drawBezier()用法及代码示例
- Node.js GM drawPolyline()用法及代码示例
- Node.js GM drawArc()用法及代码示例
- Node.js GM drawLine()用法及代码示例
注:本文由纯净天空筛选整理自nidhi1352singh大神的英文原创作品 Node.js | vm.createContext() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。