En https://stackoverflow.com/a/44795246/3416774 , la esencia del código es:
network.on("afterDrawing", function (ctx) { var dataURL = ctx.canvas.toDataURL(); document.getElementById('canvasImg').src = dataURL; }); ¿Cómo puede funcionar? ctx no está definido en ninguna parte. En la documentación de Vis.js, el evento afterDrawing tiene esta descripción:
| Nombre | Propiedades | Descripción |
|---|---|---|
| después del dibujo | contexto del lienzo | Despedido después de que se haya completado el dibujo en el lienzo. Se puede utilizar para dibujar en la parte superior de la red. |
ctx es la abreviatura de contexto de lienzo. Entonces, cuando el método on() se complete, devolverá el contexto del lienzo para que la función pueda continuar. Este es un concepto llamado funciones de devolución de llamada.