gpt4 book ai didi

javascript - 为什么 onload 函数在 src 声明之前运行?

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

这是我的代码:

<html>
<head>
<style>
*{ margin: 0px; padding: 0px; }
canvas{ display: block; margin: 0px auto; border: 1px solid #000;}
</style>
</head>
<body>
<canvas id = "game">
</canvas>
<script>
var y = new Image();
y.onload = alerting();
function alerting() {
alert("yeaaa");
}
var canvas = document.getElementById("game");
var ctx = canvas.getContext("2d");
//y.src = "Untitled.bmp";
ctx.drawImage(y, 5, 5);
</script>
</body>
</html>

两个问题:

  • 为什么 .onload 在声明图像源之前运行?我认为它应该在声明 .src 之后运行。
  • 为什么我可以将 onload 重命名为任何名称,它仍然会运行?

`

最佳答案

Why does the .onload run before image source is declared? I thought it should run after the .src is declared.

因为使用括号,您将立即调用 alerting 函数,而不是像这样分配它:

y.onload = alerting;

Why can I rename onload to anything and it will still run?

同样的原因:alerting() 不是一个函数 - 它是调用它的结果。因此,无论将其分配给 y 的哪个属性,仍然会计算表达式。

底线:函数是 JavaScript 中的一等公民——它们是值,它们是对象等等。所以像这样对待它们,你应该没问题。 )

关于javascript - 为什么 onload 函数在 src 声明之前运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32771452/

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