php js中的setup()函数是如何工作的?

w41d8nur  于 2023-01-29  发布在  PHP
关注(0)|答案(4)|浏览(423)

在我的HTML代码中

<a href="#..." onclick="my_function()" id="id-ea">Click me!</a>

一旦点击“Click me!”,my_function()就会被调用,在那个程序中,我还有setup()函数。my_function()被调用后的执行顺序是什么?
是my_function()后跟setup(),还是setup()后跟my_function()?

var global_variable;
function setup(){
    // setup using global_variable
}

function my_function(){
    // update global_variable
}
ebdffaop

ebdffaop1#

  1. setup()是一个Processing函数,在程序启动时只执行一次,应用于程序初始化,例如屏幕大小、加载介质等。每个程序只能有一个setup()函数,在初始执行后不应再次调用。
  2. my_function()是由您创建的函数,仅当您在代码中调用它时才会调用它。
    1.因此,订单将为setup() -> my_function()
s3fp2yjn

s3fp2yjn2#

为什么不试试看会发生什么呢?几个print语句会给予你答案:

function setup(){
    console.log('setup');
}

function my_function(){
    console.log('my_function');
}

但一般来说,setup()会被首先调用,因为它是在加载时由P5.js自动调用的,而my_function函数只有在用户单击链接时才被调用,这是在页面加载很久之后。
但是你不必相信我的话。运行它,看看会发生什么!:)

ryoqjall

ryoqjall3#

JavaScript是一种单线程语言,这意味着它在给定的时间只执行一个代码块(函数)。JavaScript使用堆栈来执行代码。
栈有点像数组,但是栈没有索引,你只能执行最后一个元素,或者删除最后一个元素,所以在栈上,你只能执行两个操作pushpop
让我们看一段代码:

function one(){
 two();
}
function two() {
 three();
}
function three() {
 console.trace(“Lets Call The Stack”);
}
one();

因此堆栈流将如下所示:Stack = [ one, two, three ]一旦执行了three(),则堆栈将如下所示:Stack = [ one, two ];在执行two()之后,则变为如下所示:Stack = [ one ]最后,当执行one()时,事件循环(简单地表示遍历堆栈并执行代码/函数的最后一个块)停止。
现在,在p5.js/Processing的情况下,setup()函数被调用并执行,但draw()函数继续被添加到堆栈,事件循环继续在堆栈中循环,并执行最后一个块/函数,在本例中为draw()
另一件事是你不能在另一个函数中声明setup()draw()。它们必须独立声明。我不得不浪费很多时间去做这件事,但是什么都找不到。

at0kjp5o

at0kjp5o4#

在P5中,setup函数会在程序启动时自动调用一次。您应该创建这个函数,以便正确初始化程序。以下是在文档中找到的一些重要事实:
[setup]* 用于定义初始环境属性,如屏幕大小和背景颜色,以及在程序启动时加载媒体,如图像和字体。每个程序只能有一个setup()函数,并且在初次执行后不应再次调用 *。
以下是
设置
的P5文档和参考
示例:

function setup() {
    console.log('setup is called');
    createCanvas(400, 400);
}

您可能还需要阅读draw函数的文档。
以下是在the main reference index上为文档找到的所有结构函数的列表:

  • 预加载()
  • 设置()
  • 绘制()
  • 删除()
  • 禁用友好错误
  • 无循环()
  • 循环()
  • 循环()
  • 推()
  • 弹出()
  • 重绘()
  • 第5页()

相关问题