tutorial react objects node convertir coffee javascript coffeescript

javascript - react - node js



¿Por qué utilizar el contenedor de funciones de JavaScript(agregado en coffeescript) ".call(this)" (2)

Cuando uso la versión más reciente (1.0) de coffee-script, una salida de javascript simple se ve así (por defecto):

(function() { var a; a = 1; }).call(this);

¿Qué hace .call (this) do y cuál sería el motivo para agregarlo?


Es una forma de asegurarse de que el CoffeeScript compilado tenga su propio alcance para nombres de variables. Esto tiene beneficios en términos de eficiencia y simplicidad (usted sabe que el JavaScript generado no pisará las variables utilizadas por otros códigos). Puede desactivarlo con la --bare (o -b ) en el compilador de CoffeeScript.

El motivo de la call(this) es solo asegurarse de que CoffeeScript tenga el mismo aspecto que el ámbito en el que se ubica, ya que las funciones normalmente no heredan su objeto del contexto circundante.


Está creando una función y luego llamándose con el alcance de la función / objetos padre.

.call y .apply son diferentes métodos para invocar una función. Básicamente creó una función que no hace nada excepto establecer a = 1 dentro de su propio ámbito.

En javascript necesita darse cuenta de que cada función es un objeto, y this es lo que se refiere al objeto / función actual. El uso de .call(this) anula this desde dentro de la función y lo reemplaza con el del contexto de llamada.