gpt4 book ai didi

javascript - 在控制流之外调用的函数?

转载 作者:行者123 更新时间:2023-11-28 07:11:18 25 4
gpt4 key购买 nike

所以,我一直试图通过浏览器的调试器运行特定的 js 库来理解它,但发生了一些让我困惑的事情。

我第一次在 Phaser 游戏库中遇到这个,但我也在另一个库中看到过它。我将以 Phaser 为例:

<script>
(function(){
var game = new Phaser.Game(800, 600, Phaser.CANVAS, '');
game.state.add('Game', Game);
game.state.start('Game');
})();
</script>

这样,匿名函数就完成了一些设置,我跳过该函数,再经过几个步骤(同时指针正好位于 html 文档的顶部),我的程序不知从何而来在这里结束:

Phaser.Device._readyCheck = function () {

var readyCheck = this._readyCheck;

....

}

在我的控制流中看起来没有任何东西调用该函数,那么我是如何到达这里的呢?什么叫这个函数?我读过一些关于“异步函数”的内容,这听起来是一个很好的解释,但是我在谷歌上浏览过的东西并没有真正很好地解释任何东西,所以我不能说我理解得足够多当然。我对 JavaScript 还比较陌生。

最佳答案

该库为各种事件设置事件处理程序,然后异步调用这些事件。在这种情况下,事件处理程序被设置为监视 DOM 加载的完成等,以便可以初始化库的内部状态。您可以在源代码中看到它是如何发生的

src/system/Device.js:Phaser.Device._readyCheck

Phaser.Device.whenReady 在同一文件中。只需稍加搜索,您就可以轻松找到在 Ready 时调用的人。

关于javascript - 在控制流之外调用的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31282089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com