Artículos con la etiqueta 'Objeto'


JavaScript Object (Parte I)

Si usted necesita para crear instancias de varios objetos de una clase, un método consiste en definir la clase a través de la pseudo-constructor de function() .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/ / Definición de clase
param1 , param2 ) { Función de CMyClass (param1, param2) {
= param1 ; este myProperty = param1.;
= param1 + param2 ; este myAdding = param1 + param2.;
/ /
= function ( param1 ) { esto. myMethod = function (param1) {
"add: " + this . myAdding + " - Param: " + param1 ) ; alert ("añadir:" + this myAdding + "- Param:". + param1);
}
}
/ /
new CmyClass ( 10 , 20 ) ; var obj1 = new CMyClass (10, 20);
new CmyClass ( 20 , 40 ) ; var obj2 = new CMyClass (20, 40);
/ /
"Hi from obj1" ) ; . obj1 myMethod ("Hola desde obj1");
/ /
"Hi from obj2" ) ; . obj2 myMethod ("Hola desde obj2");

Definida la clase - con un montón de parámetros iniciales - No puedo crear instancias de mi objeto, creando al mismo tiempo con la personalización de la palabra clave new .
También puede insertar una llamada a un método durante la inicialización del objeto, teniendo cuidado de insertar sólo la última - véase la línea 14:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/ / Definición de clase
param1 , param2 ) { Función de CMyClass (param1, param2) {
= param1 ; este myProperty = param1.;
= param1 + param2 ; este myAdding = param1 + param2.;
/ /
= function ( param1 ) { esto. myMethod = function (param1) {
"Result: " + this . myResult ) ; alert ("Resultado:". + este MiResultado);
}
/ /
function ( ) { este _init. = function () {
= this . myProperty * 100 ; este MiResultado = esta myProperty * 100..;
}

; este _init ().;

}
/ /
new CmyClass ( 10 , 20 ) ; var obj1 = new CMyClass (10, 20);
new CmyClass ( 20 , 40 ) ; var obj2 = new CMyClass (20, 40);
/ /
"Hi from obj1" ) ; . obj1 myMethod ("Hola desde obj1");
/ /
"Hi from obj2" ) ; . obj2 myMethod ("Hola desde obj2");

Una forma sería un error - ver la línea 6:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/ / Definición de clase
param1 , param2 ) { Función de CMyClass (param1, param2) {
= param1 ; este myProperty = param1.;
= param1 + param2 ; este myAdding = param1 + param2.;

; este _init ().;

/ /
= function ( param1 ) { esto. myMethod = function (param1) {
"Result: " + this . myResult ) ; alert ("Resultado:". + este MiResultado);
}
/ /
function ( ) { este _init. = function () {
= this . myProperty * 100 ; este MiResultado = esta myProperty * 100..;
}


}
/ /
new CmyClass ( 10 , 20 ) ; var obj1 = new CMyClass (10, 20);
new CmyClass ( 20 , 40 ) ; var obj2 = new CMyClass (20, 40);
/ /
"Hi from obj1" ) ; . obj1 myMethod ("Hola desde obj1");
/ /
"Hi from obj2" ) ; . obj2 myMethod ("Hola desde obj2");

Otra forma de crear un objeto sobre la marcha (en marcha) es declarar una variable / función, de un solo uso:

1
2
3
4
5
6
7
8
9
{ var myObject = {
, myProperty: 10,

( ) { myMethod: function () {
"Hi from " + this . myProperty ) ; alert ("Hola a" + this myProperty.);
}
};

; . myObject myMethod ();

Esta técnica es útil cuando se desea crear un istranza única de un objeto, y tratarla como tal. Esto se utiliza a menudo en los últimos frameworks como Prototype y sus derivados. A partir de esto, de hecho, no es posible crear una instancia de un nuevo objeto, ya que la clase se ha perdido.

A continuación, puede recurrir al uso de un prototipo para extender una clase, incluso vacía. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
CMyClass función () {}

{ CMyClass. Prototype = {
, myProperty: 10,

( ) { myMethod: function () {
"Hi from " + this . myProperty ) ; alert ("Hola a" + this myProperty.);
}
}

new CmyClass ( ) ; var obj = CMyClass nuevo ();

; obj myMethod ().;

O bien:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CMyClass función () {
= 1000 ; este myOldProperty = 1000.;
}

{ CMyClass. Prototype = {
, myProperty: 10,

( ) { myMethod: function () {
"Hi from " + this . myProperty ) ; alert ("Hola a" + this myProperty.);
"Hi from " + this . myOldProperty ) ; alert ("Hola a" + this myOldProperty.);
}
}

new CmyClass ( ) ; var obj = CMyClass nuevo ();

; obj myMethod ().;

Más información ...



Deje de SOPA