Node.js 构造函数:新的 vm.Script() 方法
Constructor: new vm.Script() 方法创建一个新的vm.Script对象并编译指定的代码,但它不运行代码。此外,编译后的vm.Script之后可以根据需要多次运行。在这里,代码没有连接到任何全局对象,而是在每次运行之前连接,只是为了那个特定的运行。
句法:
Constructor: new vm.Script( code, options )
参数:此方法接受上面提到的和下面描述的两个参数。
- code:要编译的 JavaScript 代码。
- options:它是可选参数,它返回Object或字符串 。如果它返回一个字符串,那么它定义了文件名。
下面的例子说明了Constructor: new vm.Script()在 Node.js 中的使用:
示例 1:
// Node.js program to demonstrate the
// Constructor: new vm.Script() method
// Including vm and util module
const util = require('util');
const vm = require('vm');
// Creating context
const context = {
number: 2
};
// Calling the constructor
const script = new vm.Script('Type = "Int"; number *= 2;');
// Contextifying object
vm.createContext(context);
// Calling runInContext method
script.runInContext(context);
// Displays output
console.log(context);
输出:
{ number: 4, Type: 'Int' }
示例 2:
// Node.js program to demonstrate the
// Constructor: new vm.Script() method
// Including vm and util module
const util = require('util');
const vm = require('vm');
// Creating context
const context = {
value: 1.0
};
// Calling the constructor
const script = new vm.Script('Type = "Float"; value += 2*0.1;');
// Contextifying object
vm.createContext(context);
// Calling runInContext method
script.runInContext(context);
// Displays output
console.log(context);
输出:
{ value: 1.2, Type: 'Float' }
参考: https://nodejs.org/api/vm.html#vm_constructor_new_vm_script_code_options