El método vm.runInThisContext() compila el código, lo ejecuta dentro del contexto del global actual y luego devuelve el resultado. Además, el código en ejecución no tiene acceso al ámbito local, pero tiene acceso al objeto global actual. Sintaxis:
vm.runInThisContext( code, options )
Parámetros: Este método acepta dos parámetros como se mencionó anteriormente y se describe a continuación:
- código: Es el código JavaScript para compilar y ejecutar.
- opciones: es un parámetro opcional y devuelve un objeto o una string y, si es una string, define el nombre del archivo que devuelve la string.
Valor devuelto: Devuelve el resultado de la última instrucción ejecutada en el script. Los siguientes ejemplos ilustran el uso del método vm.runInThisContext() en Node.js: Ejemplo 1:
javascript
// Node.js program to demonstrate the // runInThisContext() method // Including vm module const vm = require('vm'); // Declaring local variable let localVar = 'GfG'; // Calling runInThisContext method const vmresult = vm.runInThisContext('localVar = "Geeks";'); // Prints output for vmresult console.log(`vmresult: '${vmresult}', localVar: '${localVar}'`); // Constructing eval const evalresult = eval('localVar = "CS";'); // Prints output for evalresult console.log(`evalresult: '${evalresult}', localVar: '${localVar}'`);
Salida: Por lo tanto, el método vm.runInThisContext() no tiene acceso al ámbito local, por lo tanto, localVar no cambia aquí.
vmresult: 'Geeks', localVar: 'GfG' evalresult: 'CS', localVar: 'GfG'
Ejemplo 2:
javascript
// Node.js program to demonstrate the // runInThisContext() method // Including vm module const vm = require('vm'); // Declaring local variable and assigning // it an integer let localVar = 6; // Calling runInThisContext method const vmresult = vm.runInThisContext('localVar = 9;'); // Prints output for vmresult console.log(`vmresult: '${vmresult}', localVar: '${localVar}'`); // Constructing eval const evalresult = eval('localVar = 11;'); // Prints output for evalresult console.log(`evalresult: '${evalresult}', localVar: '${localVar}'`);
Producción:
vmresult: '9', localVar: '6' evalresult: '11', localVar: '6'
Referencia: https://nodejs.org/api/vm.html#vm_vm_runinthiscontext_code_options
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA