me da la idea básica acerca de this
no estar en un method
cuando en strict mode
esbozado here, pero se pone un poco erudita, para ser honesto. Así términos, en más prosaicos:jQuery devolución de llamada - estricta violación
que tienen un controlador de este modo:
$('.myClass').one('keyup', function() {
var $this = $(this);
etc etc
});
quiero cambiar a esto:
function myFunction() {
var $this = $(this);
etc etc
};
$('.myClass1').one('keyup', myFunction);
$('.myClass2').one('keyup', myFunction); etc
no le gusta porque en strict mode
porque Estoy usando this
fuera de un método. Lo entiendo.
Sin embargo, tengo que tener myFunction
separada al controlador, porque (1) se une a diversas clases/elementos y (2) Estoy usando .off().one('keyup', myFunction)
para restablecer el manejador one
para diversas clases en varios puntos.
Entonces, ¿cómo puedo obtener una función de devolución de llamada por separado sin violar el negocio this
?
La respuesta aceptada a la pregunta el enlace a sugiere reemplazar la declaración de función con una expresión de función. ¿Lo intentaste? –
No use el modo estricto – Imdad
No hay nada de malo en usar esto dentro de una función. Dado que los "métodos" realmente no pertenecen a los objetos (son solo propiedades que se refieren a funciones definidas _en algún lugar_, y posiblemente compartidas con otros objetos). No veo cuál es la objeción. – nnnnnn