📜  Node.js vm.isContext() 方法

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

Node.js vm.isContext() 方法

vm.isContext() 方法是 vm 模块的内置应用程序编程接口,用于检查声明的对象是否正在使用vm.createContext ()方法进行上下文化。

句法:

vm.isContext( object )

参数:此方法接受单个参数对象

返回值:如果声明的对象被上下文化,则返回 true,否则返回 false。

下面的例子说明了 Node.js 中vm.isContext() 方法的使用:

示例 1:

javascript
// Node.js program to demonstrate the     
// vm.isContext() method
  
// Including util and vm module
const util = require('util');
const vm = require('vm');
  
// Assigning value to the global variable
global.globalVar = 7;
  
// Defining Context object
const object = { globalVar: 3 };
  
// Contextifying stated object
// using createContext method
vm.createContext(object);
  
// Compiling code
vm.runInContext('globalVar *= 6;', object);
  
// Displays the context
console.log(object);
  
// Displays value of global variable
console.log(global.globalVar);
  
// Calling isContext method
vm.isContext(object);


javascript
// Node.js program to demonstrate the     
// vm.isContext() method
  
// Including util and vm module
const util = require('util');
const vm = require('vm');
  
// Assigning value to the global variable
global.globalVar = 7;
  
// Defining Context object
const object = { globalVar: 3 };
  
// Displays the context
console.log(object);
  
// Displays value of global variable
console.log(global.globalVar);
  
// Calling isContext method
vm.isContext(object);


输出:

{ globalVar: 18 }
7
true

这里,上下文中的 globalVar 是 18,输出为 (6*3 = 18),但 globalVar 的值仍然是 7。此外,这里声明的对象被上下文化,因此返回 true。

示例 2:

javascript

// Node.js program to demonstrate the     
// vm.isContext() method
  
// Including util and vm module
const util = require('util');
const vm = require('vm');
  
// Assigning value to the global variable
global.globalVar = 7;
  
// Defining Context object
const object = { globalVar: 3 };
  
// Displays the context
console.log(object);
  
// Displays value of global variable
console.log(global.globalVar);
  
// Calling isContext method
vm.isContext(object);

输出:

{ globalVar: 3 }
7
false

在这里,声明的对象没有上下文,因此返回 false。

参考: https://nodejs.org/api/vm.html#vm_vm_iscontext_object