ustedes lo llaman así (que pasa a la función de devolución de llamada como un argumento):
myfunction(myCallbackFn);
en cuenta que no hay paréntesis después del nombre de la función cuando se pasa una referencia a la función como un argumento. Esto no invoca la función, sino que pasa una referencia a la misma que luego se puede llamar más tarde desde su función personalizada.
Se podría definir su función y después llama a la función de devolución de llamada de esta manera:
function myfunction(cb) {
cb(arg1, arg2);
}
Nota, hay varios métodos de realidad llamando a la función de devolución de llamada desde dentro de la función personalizada. Si sólo tiene que llamar con normalidad y no se preocupan por el argumento this
, sólo puede utilizar:
cb();
Si desea establecer el argumento this
a algo, puede utilizar esto:
cb.call(thisArg, arg1, arg2);
Si desea pasar a lo largo de sus argumentos actuales o pasar una matriz de argumentos y establecer el argumento this
, se utilizaría la siguiente:
cb.apply(thisArg, argArray);
Referencias en .call()
y .apply()
.
Su código actual tiene un error de JavaScript en esta área:
test(rand_gyumolcs, link, callback){
callback();
};
Esto no es legal Javascript. No sé lo que intenta hacer, pero parece la mitad de una declaración de función y la mitad de una llamada a función. Si lo que desea es llamar a la función de prueba, usted sólo tiene que utilizar esto:
test(rand_gyumolcs, link, callback);
Dentro de prueba, si desea que la función de devolución de llamada a ser llamado después de la animación se ha completado, entonces habría que enganchar la terminación función de la animación y llame a la devolución de llamada a continuación.
Parece que no funciona para mí jfriend00 ... probablemente sea mi error, pero ¿podría echar un vistazo? El código es un poco complicado, lo sé, no soy tan bueno en jquery ... http://ridewithus.co.cc/test/ –
si puedes ver ... quiero que las frutas del lado derecho se muevan, y la función de prueba lo hace, pero también tengo una función de devolución de llamada que debería devolverlos a su posición original –
. Publique el código relevante en su pregunta original o proporcione una descripción muy específica de dónde está el código en su página y cómo lo desencadena Has publicado una página web con cinco páginas de script incrustadas y no tengo idea de qué parte del código estás preguntando. – jfriend00