JavaScript - Pasar un objeto como parámetro a una función Javascript

   
Vista:

Pasar un objeto como parámetro a una función Javascript

Publicado por arrocal (4 intervenciones) el 24/09/2014 08:33:51
Hola a todos;

Tengo una duda sobre el tema del asunto.

Yo creo una clase js (en un fichero) sólo con propiedades (variable públicas):

1
2
3
4
5
6
7
8
function Persona()
{
//variables publicas
this.nombre;
this.apellido;
this.edad;
this.ocupacion;
}
¿Puedo crear una función que acepte como parámetro un objeto de la clase anterior Persona?. Seria algo así:

1
2
3
4
5
Function Saludar (Persona)
{
 
alert 'Hola' + Persona.Nombre)
}

Y la llamada a la funcion Saludar

1
2
3
4
5
6
7
Function Loquesea ()
{
var _persona= new Persona ();
_persona.Nombre='Alvaro';
Saludar (_persona)
 
}

Gracias, un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Pasar un objeto como parámetro a una función Javascript

Publicado por xve (1595 intervenciones) el 24/09/2014 20:29:23
Hola Arrocal, para ello tienes que utilizar una clase de JavaScript en vez de funciones... Aquí te muestro un ejemplo de como lo puedes hacer...

1
2
3
4
5
6
7
8
9
10
11
<script>
var Persona={
	nombre:"jose",
	apellido:"perez",
};
 
function Saludar(Persona)
{
	alert('Hola ' + Persona.nombre);
}
</script>

o con una función...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
var Persona={
	nombre:"jose",
	apellido:"perez",
	getNombre:function(){
		return this.nombre;
	}
};
 
function Saludar(Persona)
{
	alert('Hola ' + Persona.getNombre());
}
</script>


Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar un objeto como parámetro a una función Javascript

Publicado por arrocal (4 intervenciones) el 25/09/2014 08:58:19
Gracias xve;
Cro que lo que tu comentas no es exactamente lo que busco, o no lo he entendido, ya que si no me equivoco, tú no has creado la clase javascript sólo con propiedades (variables) y en un fichero js.

Lo que yo quiero es crear una clase sólo con propiedades en un fichero js:

1
2
3
4
5
6
7
8
9
10
//Fichero js
 
function Persona()
{
//variables publicas
this.nombre;
this.apellido;
this.edad;
this.ocupacion;
}


Pregunta 1: ¿Sería esto de arriba correcto?

Luego crear una función que aceptase como parametro un objeto de la clase Persona:

1
2
3
4
Function Saludar (persona)
{
alert 'Hola' + persona.nombre)
}

En este función, no sé cómo decirle que el parámetro es de tipo persona, lo que vb.net sería

1
2
3
Public Sub Saludar (persona as Persona)
 
End Sub


Y luego la llamada a la función persona

1
2
3
4
5
6
7
Function Loquesea ()
{
var _persona= new Persona ();
_persona.Nombre='Alvaro';
Saludar (_persona)
 
}

No sé si se puede hacer más o menos como lo estoy explicando.

¿Este código que has puessto es la declaración de la clase?

var Persona={ nombre:"jose", apellido:"perez"}, Quiza sea esto lo uqe tenga que meter en el fichero js,

Muchas gracias, un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar un objeto como parámetro a una función Javascript

Publicado por arrocal (4 intervenciones) el 25/09/2014 09:45:56
Hola de nuevo;

Como lo estaba haciendo sí funciona, lo que me mosqueaba es que una vez creada la clase Persona, al invocarla de la siguiente manera, el intellisense de Visual Studio sí que funcionaba para Persona, es decir se me mostraba "Persona" en el desplegable, pero no me funciona para la propiedad apellido

function Hola()
{
var aa = new Persona();
aa.apellido = 'garcia'

Saludar(aa);

}

function Saludar(Persona)
{

alert(Persona.apellido);

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar un objeto como parámetro a una función Javascript

Publicado por arrocal (4 intervenciones) el 25/09/2014 11:20:49
Hola;

Por si alguno le resulta de ayuda. Las variable apellido no me salia en el intelliense de Visual Studio porque no tenia ningún valor. Si le meto cualquier valor a la propiedad en la clase, ya me sale en el intellesense.

this.apellido='LOQUESEA'

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar