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