JavaScript - Duda con this, JavaScript y Nodejs

   
Vista:

Duda con this, JavaScript y Nodejs

Publicado por Asdrúbal (1 intervención) el 13/04/2014 05:09:18
Buen día a todos. Tengo una gran duda por acá, resulta que ando aprendiendo CoffeeScript (Sin embargo, éste no es el meollo del asunto aquí). He hecho un código (El cual se compila a javascript), resultando en lo siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Generated by CoffeeScript 1.7.1
(function() {
  var c_exists, val;
 
  val = this;
 
  c_exists = typeof console !== "undefined" && console !== null;
 
  this.x = "outside";
 
  (function(val) {
    if (c_exists) {
      console.log(val === this);
    }
    this.x = "inside";
  })(val);
 
  if (c_exists) {
    console.log(this.x);
  }
 
}).call(this);

Bien, resulta que si lo "corro" en mi navegador, la salida del mismo es:

1
2
true
inside

Lo cual es lo que me espero siguiendo lo que creo saber sobre el significado de this en JavaScript. Ahora bien, vean la salida cuando ejecuto lo mismo en node

1
2
false
outside

¿A qué se debe esto?

Francamente tengo varios días buscando respuestas y no consigo ninguna que sea satisfactoria.

Muchas gracias de antemano.
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