Tema: Dos puntos
Ver Mensaje Individual
  #23 (permalink)  
Antiguo 07/10/2008, 00:36
Avatar de Panino5001
Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Dos puntos

Cita:
Iniciado por venkman Ver Mensaje
Cuando digo que instancia va asociado a clase y que de lo que se habla en Javascript es de generadores y objetos, es porque esa es la nomenclatura. Cuando en tu ejemplo, buzu, llamas a la función empleado, ésta no es el constructor de una clase. El término correcto es generador. Y no produce una instancia, produce un objeto.
Cita:
Iniciado por buzu Ver Mensaje
No te confundas venkman, el buzu en ningún momento dijo que eso era el constructor de una clase, si te das cuenta, dijo que Js no soporta clases. Fui el primero en mencionar que no hay tal cosa como las clases en este hilo. Ahora, tu dices que no se genera una instancia basándote en el hecho de que si haces empleado1.saludar() no se afecta a empleado2. En realidad lo que estas haciendo es agregar un método estático a empleado1. En otras palabras estás extendiendo empleado1. Es obvio que no estas afectando el prototipo de empleado, sin embargo, si haces empleado.prototype.saludar() ahí si afectas a empleado1 y empleado2 por lo que se demuestra (usando tu analogía) que ambos son instancias de empleado. Ademas, como ya se menciono anteriormente, si no existen las instancias en Js, por que rayos tenemos instanceof?

Por cierto, jamas he visto a un autor llamar al constructor de objetos funcion generadora. Será que tambien estoy leyendo los autores incorrectos? Raro...

Cameron Adams,
James Edwards,
Christian Heilmann,
Michael Mahemoff,
Dan Webb,

Todos ellos son entonces algunos de los autores incorrectos. Lo que me hace pensar, por que sitepoint les publica?

Tan solo dime por que al hacer esto:

Código javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
  4. <head>
  5.     <meta http-equiv="content-type" content="text/html; charset=iso-2022-jp" />
  6.     <title>Untitled</title>
  7.     <script type="text/javascript">
  8.         function empleado(){
  9.        
  10.         }
  11.        
  12.         empleado1 = new empleado();
  13.         empleado1.saludar = 'hello';
  14.         alert(empleado1 instanceof empleado);
  15.     </script>
  16. </head>
  17. <body>
  18.  
  19. </body>
  20. </html>

El alert nos da true. Solo explícame eso y me convencerás de que empleado1 no es instancia de empleado.

Saludos.
Y no sólo eso, si la función empleado no es el constructor, este segundo alert qué está mostrando?
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<
head>
    <
meta http-equiv="content-type" content="text/html; charset=iso-2022-jp" />
    <
title>Untitled</title>
    <
script type="text/javascript">
        function 
empleado(){
        
        }
        
        
empleado1 = new empleado();
        
empleado1.saludar 'hello';
        
alert(empleado1 instanceof empleado);
    
alert(empleado1.constructor);
    
</script>
</head>
<body>