Ejecuta una o varias instrucciones especificadas.
Execute instrucción
El argumento requerido instrucción es una expresión de cadena que contiene una o más instrucciones para ejecutar. Incluye múltiples instrucciones en el argumento instrucción, mediante el uso de dos puntos (:) o saltos de línea incrustados para separarlas.
En VBScript, x = y se puede interpretar de dos formas. La primera es una instrucción de asignación, donde el valor de y se asigna a x. La segunda interpretación es como una expresión que comprueba si x y y tienen el mismo valor. Si es así, el resultado es True; si no, el resultado es False. La instrucción Execute utiliza siempre la primera interpretación, mientras que el método Eval utiliza siempre la segunda.
Nota En Microsoft® JScript™, no existe confusión entre asignación y comparación, porque el operador de asignación (=) es diferente del operador de comparación (==).
El contexto en el que se invoca la instrucción Execute determina qué objetos y variables están disponibles para el código que se ejecuta. Los objetos y variables dentro del ámbito están disponibles para codificarse en una instrucción Execute. Sin embargo, es importante entender que si ejecuta un código que crea un procedimiento, dicho procedimiento no hereda el ámbito del procedimiento en que apareció.
Al igual que cualquier procedimiento, el ámbito del procedimiento nuevo es global y hereda todo en el ámbito global. A diferencia de cualquier otro procedimiento, su contexto no es de ámbito global, de modo que sólo se puede ejecutar en el contexto del procedimiento donde apareció la instrucción Execute. Sin embargo, si la misma instrucción Execute se invoca fuera de un procedimiento (es decir, ámbito global), no sólo hereda todo en el ámbito global, sino que también puede llamarse desde cualquier lugar, ya que su contexto es global. El siguiente ejemplo ilustra este comportamiento:
Dim X ' Declara X en el ámbito global. X = "Global" ' Asigna un valor a X global. Sub Proc1 ' Declara el procedimiento. Dim X ' Declara X en el ámbito local. X = "Local" ' Asigna un valor a X local. ' La instrucción Execute aquí crea un ' procedimiento que, cuando se invoca, imprime X. ' Imprime X global porque Proc2 ' hereda todo en el ámbito local.Execute
"Sub Proc2: Print X: End Sub" Print Eval("X") ' Imprime X local. Proc2 ' Invoca a Proc2 en el ámbito de Proc1. End Sub Proc2 ' Esta línea produce un error ya que ' Proc2 no está disponible fuera de Proc1. Proc1 ' Invoca a Proc1.Execute
"Sub Proc2: Print X: End Sub" Proc2 ' Esta invocación se realizó correctamente porque Proc2 ' está ahora disponible globalmente.
El siguiente ejemplo muestra cómo se puede volver a escribir la instrucción Execute de manera que no tenga que delimitar todo el procedimiento entre comillas:
S = "Sub Proc2" & vbCrLf S = S & " Print X" & vbCrLf S = S & "End Sub" Execute S
Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com. |