Hay dos propiedades especiales dentro de la función: argumentos y esto. Los argumentos son un objeto de matriz de clase que contiene todos los parámetros pasados.
Pero este objeto también tiene una propiedad llamada Callee, que es un puntero a una función que posee el objeto de argumentos.
Consulte el ejemplo clásico de la función factorial:
La copia del código es la siguiente:
función factorial (num) {
if (num <= 1) {
regresar 1;
} demás {
devolución num * factorial (num - 1);
}
}
función factorial (num) {
if (num <= 1) {
regresar 1;
} demás {
devuelve num * argumentos.callee (num - 1);
}
}
No hay nada de malo en usar el primer método, pero el acoplamiento es demasiado alto y no muy bueno. Después de cambiar el nombre de la función, el nombre de la función interna también debe cambiarse.
El segundo método es un bajo acoplamiento, sin importar cómo se cambie el nombre de la función, no afectará la ejecución de la función.
Esto se refiere al objeto de entorno en el que se ejecuta la función, o también se puede decir que es este valor.
La copia del código es la siguiente:
window.color = "rojo";
var o = {color: "azul"};
función sayscolor () {
alerta (this.color);
}
sayColor (); // rojo
O.SayColor = SayColor;
O.SayColor (); // azul
El atributo de llamadas contiene una referencia a la función que llama a la función actual. Si la función actual se llama en el alcance global, su valor es nulo
La copia del código es la siguiente:
function outer () {
innter ();
}
function inner () {
//alert(innter.caller) ;// El acoplamiento es demasiado alto
alerta (argumentos.callee.caller);
}
exterior();
Lo anterior es todo el contenido de las propiedades internas de las funciones de JavaScript. Espero que te pueda gustar