📜  Node.js 构造函数:新的 vm.Script() 方法

📅  最后修改于: 2022-05-13 01:56:24.565000             🧑  作者: Mango

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