Arrow Functions vs. Declaraciones del método en es6
al profundizar en ES6, puede encontrar el siguiente problema:
var person = { name: "jason", shout: () => console.log("my name is ", this.name) }; person.shout(); // Prints "my name is "
la intención es que la función acceda a la propiedad de nombre dentro del objeto de persona. Sin embargo, la consola solo imprime "Mi nombre es"
explicación:
este comportamiento surge de la naturaleza distinta de las funciones de flecha en ES6. Las funciones de flecha, a diferencia de las declaraciones de funciones tradicionales, no vinculan esta palabra clave. En cambio, heredan el enlace de su alcance circundante, que, en este caso, es el alcance global.
Solution:
para abordar este problema, puede usar el patrón de Declaración del método ES6, que conserva la unión deseada de esto: [&]
var persona = {{ Nombre: "Jason", gritar() { console.log ("Mi nombre es", this.name); } }; persona.lout (); // Imprime "Mi nombre es Jason"Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3