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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。