【问题标题】:How can this function which has undefined argument be able to run?这个具有未定义参数的函数如何能够运行?
【发布时间】:2021-11-07 15:50:50
【问题描述】:

https://stackoverflow.com/a/44795246/3416774中,代码的实质是:

network.on("afterDrawing", function (ctx) {
    var dataURL = ctx.canvas.toDataURL();
    document.getElementById('canvasImg').src = dataURL;
});

它如何运行? ctx 没有在任何地方定义。在Vis.js' documentation中,afterDrawing事件有这样的描述:

Name Properties Description
afterDrawing canvas context Fired after drawing on the canvas has been completed. Can be used to draw on top of the network.

【问题讨论】:

  • afterDrawing 事件将ctx 提供给传递的回调。见docs
  • 这是一个叫做callback functions的概念,一旦.on完成了它的工作,它就会返回一个值ctx,你可以在你的代码中使用它。
  • “未在任何地方定义”。好吧,它被定义为function的参数。
  • 并在文档中列为afterDrawing 事件的“属性”(尽管这是一种令人困惑的语言)。
  • @pilchard 啊,ctxcanvas context 的缩写。那么当on() 方法完成时,它会返回画布上下文以便function 可以接听?

标签: javascript vis.js


【解决方案1】:

ctx 是画布上下文的缩写。所以当 on() 方法完成时,它会返回画布上下文,以便函数可以获取。这是一个叫做回调函数的概念。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-14
    • 2019-01-02
    • 2012-02-18
    • 1970-01-01
    • 2020-06-16
    • 2019-07-18
    • 1970-01-01
    • 2019-08-30
    相关资源
    最近更新 更多