Causa
Usé Prototype.js ese día, así que lo abrí para ver que vi algunas líneas y niebla.
fragmento de código propotype.js
El código es el siguiente:
var class = {
Create: function () {
Función de retorno () {
this.initialize.apply (esto, argumentos);
}
}
}
// El método de uso de clase es el siguiente
var a = class.create ();
A. prototipo = {
inicializar: function (v) {
este valor = V;
}
showValue: function () {
alerta (this.value);
}
}
var a = nuevo a ('¡Helloord!');
A. Valor de exhibición ();
l inicializar?
¿Qué hace el método L de L Aplica?
L Variable de argumentos?
l ¿Por qué se ejecuta el método de inicialización después de una nueva A?
Encuentra la respuesta:
Segundo, JS dirigido al objeto
¿Qué es Initialize?
Es solo una variable, que representa un método, y el uso es el constructor de la clase.
La función específica es compatible con JS, entonces, ¿cuál es el objeto de JS? ¿Qué son iguales y diferentes de Java?
Mira el código:
El código es el siguiente:
Copiar código del código de la siguiente manera:
var classname = function (v) {{
this.Value = V;
this.getValue = function () {
Devolver este.value;
}
this.setValue = function (v) {
this.Value = V;
}
}
Entonces, ¿cuál es la diferencia entre las funciones y las clases en JS?
De hecho, es lo mismo.
como
El código es el siguiente:
Var objectName1 = new ClassName ("A");
Entre ellos, ObjectName1 es un objeto obtenido después de realizar el constructor de nombre de clase, y esto en la función ClassName se refiere al objeto construido después del nuevo, por lo que ObjectName1 tendrá un atributo y dos métodos después de lo siguiente. Puedes llamarlos a través de esto:
El código es el siguiente:
ObjectName1.SetValue ('' Hello '');
Alerta (ObjectName1.getValue ());
Alerta (ObjectName1.Value);
Entonces
El código es el siguiente:
var objectName2 = classname ("b");
Entonces, ¿qué obtiene ObjectName2? Obviamente, el valor de retorno del método, aquí classname solo se usa como una función ordinaria (aunque la primera letra está capitalizada). Pero no hay valor de retorno en el nombre de clase anterior, por lo que ObjectName2 no será descolorido, ¿a quién da "B"? No hay objeto aquí, pero solo realiza este método simplemente, por lo que esta "B" se asigna a la ventana del objeto que llama a este método.
var objectName2 = classname ("b");
alerta (Window.Value);
Entonces, todas las funciones en JS son las mismas, pero el uso puede ser diferente (utilizado para construir objetos o ejecutar un proceso).
Volvamos al tema ¿Qué está haciendo la inicialización?
El código es el siguiente:
Copiar código del código de la siguiente manera:
var class = {
Create: function () {
Función de retorno () {
this.initialize.apply (esto, argumentos);
}
}
}
var a = class.create ();
Este código es construir una copia de función a A, esta función es
El código es el siguiente:
Copiar código del código de la siguiente manera:
Función () {
this.initialize.apply (esto, argumentos);
}
Y el último método se usa para hacer un constructor. Cuando se usa este constructor para construir un objeto, permitirá que el método inicial () de la variable inicialize del constructor ejecutado el método Aplicar (). De esta manera, se contactará cuando los objetos inicializados (cómo contactar a la aplicación).
Entonces
El código es el siguiente:
Copiar código del código de la siguiente manera:
A.Prototype = {
inicializar: function (v) {
este valor = V;
}
showValue: function () {
alerta (this.value);
}
}
¿Qué significa?
El prototipo significa "prototipo". A es una función (), entonces A. Prototype es una variable en función, que en realidad es un objeto. ¿Qué método tiene este objeto, entonces, qué método genera el objeto generado por la función?
var a = nuevo a ('¡Helloord!');
A. Valor de exhibición ();
Por lo tanto, el objeto también tendrá un método de inicialización. '), Initialize volvió a llamar al método de aplicación. Este es el método para llamar a una inicialización.
3. Llame () y aplique ()
Comenzemos a estudiar aplicar (), encuentre algunas información en línea y combine su propia investigación para comprender las funciones de llamadas () y aplicar ().功能基本一样 , Function (). Llame (Object, {}, {} ……) 或者 Function (). Aplicar (Object, [……]) 的功能就是对象 Objeto 调用这里的 Funciton () , 不同之处是El parámetro de llamada se pasa a Funciton desde el segundo. Aplicar tiene solo dos parámetros, y el segundo es una matriz, que almacena todos los parámetros pasados a las funciones.
this.initialize.apply (esto, argumentos);
¿Qué significa?
El primero esto aquí se refiere al objeto generado después de llamar al constructor con una nueva llamada, que es la A anterior, entonces, por supuesto, la segunda que esto debería referirse al mismo objeto. Entonces, esta oración es esta (es decir, a) llamar al método de inicialización, y el parámetro es un objeto de argumentos (el número de la matriz de los parámetros).
Entonces, ¿cómo pasar los parámetros del método de inicialización?
Cuarto, argumentos objeto
Este código puede explicar todo:
El código es el siguiente:
Copiar código del código de la siguiente manera:
función test () {
Alerta (typeof argumentos);
para (var i = 0; i <arguments.length; i ++) {
Alerta (argumentos [i]);
}
}
prueba ("1", "2", "3");
prueba ("a", "b");
Después de ejecutar, alerta (argumentos de typing); Luego juegue 1, 2 y 3 a su vez. Explique que los argumentos son la matriz sólida de llamar a la función.
El código es el siguiente:
Copiar código del código de la siguiente manera:
var class = {
Create: function () {
Función de retorno () {
this.initialize.apply (esto, argumentos);
}
}
}
Los argumentos son la matriz sólida del constructor devuelto por creación, por lo tanto
var a = nuevo a ('¡Helloord!');
En el momento de 'HelloWord!'