Los últimos tutoriales de desarrollo web
 

JavaScript Las definiciones de funciones


Funciones de JavaScript se definen con la function la palabra clave.

Se puede utilizar una declaración de función o una expresión de función.


Las declaraciones de funciones

Al principio de este tutorial, que ha aprendido que las funciones se declaran con la siguiente sintaxis:

function functionName ( parameters ) {
  code to be executed
}

funciones declaradas no se ejecutan inmediatamente. Ellos son "salvados para su uso posterior", y se ejecutarán más adelante, cuando se invoca (llamados).

Ejemplo

function myFunction(a, b) {
    return a * b;
}
Inténtalo tú mismo "

Punto y coma se utiliza para separar las sentencias JavaScript ejecutables.
Desde una declaración de función no es una sentencia ejecutable, que no es común para terminar con un punto y coma.


Las expresiones de función

Una función de JavaScript también se puede definir mediante una expresión.

Una expresión de función puede ser almacenado en una variable:

Ejemplo

var x = function (a, b) {return a * b};
Inténtalo tú mismo "

Después de una expresión de la función se ha almacenado en una variable, la variable puede ser utilizado como una función:

Ejemplo

var x = function (a, b) {return a * b};
var z = x(4, 3);
Inténtalo tú mismo "

La función anterior es en realidad una función anónima (una función sin nombre).

Las funciones almacenadas en las variables no necesitan nombres de las funciones. Ellos siempre se invocan (llamada) usando el nombre de la variable.

La función anterior termina con un punto y coma, ya que es una parte de una instrucción ejecutable.


La Function() Constructor

Como se ha visto en los ejemplos anteriores, las funciones de JavaScript se definen con la function la palabra clave.

Las funciones también se pueden definir con un sistema incorporado en JavaScript función constructora llamada Function() .

Ejemplo

var myFunction = new Function("a", "b", "return a * b");

var x = myFunction(4, 3);
Inténtalo tú mismo "

En realidad no tiene que utilizar el constructor función. El ejemplo anterior es la misma que la escritura:

Ejemplo

var myFunction = function (a, b) {return a * b};

var x = myFunction(4, 3);
Inténtalo tú mismo "

La mayoría de las veces, se puede evitar el uso de la new palabra clave en JavaScript.


Function Hoisting

Al principio de este tutorial, usted aprendió sobre "hoisting" .

Izado es el comportamiento predeterminado del movimiento de JavaScript declaraciones a la parte superior del ámbito actual.

Izado se aplica a las declaraciones de variables y para la declaración de funciones.

Debido a esto, las funciones de JavaScript puede ser llamado antes de que se declaran:

myFunction(5);

function myFunction(y) {
    return y * y;
}

Las funciones definidas por el uso de una expresión no se izan.


Funciones de auto-Invocando

Las expresiones de función se pueden hacer "auto-invocación".

Una expresión de auto-invocación se invoca (iniciado) de forma automática, sin ser llamado.

Las expresiones de función se ejecutará automáticamente si la expresión es seguido por () .

No se puede auto-invocar una declaración de la función.

Usted tiene que agregar paréntesis alrededor de la función para indicar que se trata de una expresión de función:

Ejemplo

(function () {
    var x = "Hello!!";      // I will invoke myself
})();
Inténtalo tú mismo "

La función anterior es en realidad una función de auto-invocando anónima (función sin nombre).


Las funciones pueden usarse como valores

funciones de JavaScript se pueden utilizar como valores:

Ejemplo

function myFunction(a, b) {
    return a * b;
}

var x = myFunction(4, 3);
Inténtalo tú mismo "

funciones de JavaScript se pueden utilizar en las expresiones:

Ejemplo

function myFunction(a, b) {
    return a * b;
}

var x = myFunction(4, 3) * 2;
Inténtalo tú mismo "

Las funciones son objetos

El typeof operador en JavaScript devuelve "function" de funciones.

Pero, funciones de JavaScript se pueden describir mejor como objetos.

Funciones de JavaScript tienen ambas propiedades y métodos.

La propiedad arguments.length devuelve el número de argumentos recibió cuando se invoca la función:

Ejemplo

function myFunction(a, b) {
    return arguments.length;
}
Inténtalo tú mismo "

El toString() método devuelve la función como una cadena:

Ejemplo

function myFunction(a, b) {
    return a * b;
}

var txt = myFunction.toString();
Inténtalo tú mismo "

Una función se define como la propiedad de un objeto, se llama un método para el objeto.
Una función diseñada para crear nuevos objetos, se llama un constructor de objetos.