¿Por qué utilizar la envoltura función de JavaScript (añadido en CoffeeScript) “.call (esto)”

StackOverflow https://stackoverflow.com/questions/4542942

  •  13-10-2019
  •  | 
  •  

Pregunta

Cuando uso el más reciente (1.0) la liberación de coffeescript, una simple apariencia de salida javascript como éste (por defecto):

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

¿Qué hace .call (este) hacer y lo que sería la razón para agregarlo?

¿Fue útil?

Solución

Se trata de crear una función y luego se hace llamar con la función madre / objetos alcance.

.call y .apply diferentes métodos de la invocación de una función. Es, básicamente, crear una función que no hace nada excepto un conjunto = 1 dentro de su propio ámbito de aplicación.

En JavaScript tiene que darse cuenta de que cada función es un objeto, y this es lo que se refiere al objeto / función actual. Usando .call(this) this anulaciones dentro de la función y la sustituye por la del contexto de llamada.

Otros consejos

Es una forma de asegurarse de que el CoffeeScript compilado tiene su propio espacio de nombres de variables. Esto tiene ventajas en términos de eficiencia y simplicidad (que se conoce el JavaScript generado no pisar sobre las variables utilizadas por otros códigos). Se puede desactivar con la opción --bare (o -b) al compilador CoffeeScript.

La razón de la call(this) es sólo para asegurarse de que el CoffeeScript tiene el mismo this como el ámbito donde se coloca, ya que las funciones normalmente no heredan su objeto this del contexto que lo rodea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top