JavaScript debería ser uno de los idiomas multiplataforma más populares ahora. He estado jugando con algunas cosas interesantes en la parte delantera, pero descubrí que no dominaba bien este idioma. Era un poco descuidado, así que quería aprovechar el tiempo que tengo tiempo para agregar algunas cosas faltantes.
Este enlace oculto
Al principio, esto era algo de lo que estaba confundido, pero cuando lo vi por primera vez, no lo entendí. Luego, en situaciones similares, el mismo problema puede resolverse mediante métodos similares. Así que traté de resolver el conocimiento para una fácil búsqueda.
Este es un error de diseño de lenguaje JavaScript, pero parece que este error es inevitable, las funciones son objetos, las matrices son objetos, etc. Cotizos de "JavaScript: las piezas buenas"
La copia del código es la siguiente:
función add (a, b) {return a+b}
var sum = add (3,4);
console.log (suma); // sum = 7
En este momento, el resultado de la suma es 7.
La copia del código es la siguiente:
> TypyOf Agregar
> 'Número'
Como puede ver aquí, el tipo de ADD es un valor numérico.
Al llamar a una función en este modo, esto está vinculado a una variable global.
Es decir, en el entorno actual, podemos llamar a esto de esta manera
La copia del código es la siguiente:
this.add (3,4)
Esta es la unión implícita de esto, y esto estará vinculado de diferentes maneras.
La copia del código es la siguiente:
var hello = function () {
Regrese "Hola," + this.name;
};
nombre = 'this';
console.log (hello ());
Entonces recibiremos hola, esto. Y cuando
La copia del código es la siguiente:
var hello = function () {
Regrese "Hola," + this.name;
};
user var = {
Hola: Hola,
Nombre: 'Phodal',
};
console.log (user.hello ());
En este momento, el Hello in User señala la función Hello, y en nuestro entendimiento, ¿cómo es esto posible? Entonces es un error.
Si definimos una variable en este método y le asignamos este valor, entonces la función interna puede acceder a esto a través de esa variable.
var que = esto
Entonces, cuando la situación es un poco más complicada, necesitamos usar:
La copia del código es la siguiente:
VAT que = esto;
Consejos:
1. El alcance de esta variable siempre está determinado por su función de encierra más cercana.
2. Use una variable local (como yo, yo, que) para que esta vinculación esté disponible internamente.
Un ejemplo simple:
La copia del código es la siguiente:
var m = function () {
this.name = "m";
};
var mm = function () {
z = nuevo m ();
this.name = "mm";
z.printname = function () {
console.log (this.name);
};
return z.printname ();
};
var mm = nuevo mm;
En este momento esto apunta a la función M, que es el MM en sí. Si eliminamos esto de M, entonces el devuelto indefinido. Entonces creamos un alias para el alcance actual de esto, como ese o yo, etc.:
La copia del código es la siguiente:
var mm = function () {
z = nuevo m ();
this.name = "mm";
var self = this;
z.printname = function () {
console.log (self.name);
};
return z.printname ();
};
De esta manera puedes devolver un mm. Además, el método de enlace de la función de devolución de llamada se puede usar en ES5.
La copia del código es la siguiente:
var mm = function () {
z = nuevo m ();
this.name = "mm";
z.printname = function () {
console.log (this.name);
} .bind (esto);
return z.printname ();
};
Bind puede unir métodos al receptor.
otro
Otro hola, mundo
Me encontré con impresión ('Hello') ('World') por casualidad, y luego obtuve 'Hola, mundo'.
Las llamadas funciones de orden superior parecen ser muy útiles. Si está interesado, puede consultar el siguiente artículo.