Javascript 函数如何运行

How Javascript functions run

本文关键字:运行 何运行 函数 Javascript      更新时间:2023-09-26

我想知道javascript函数是如何加载或运行的。

以我有这些JavaScript函数块为例;

<span id=indicator></span>
function BlockOne(){
    var textToWrite = document.createTextNode("I am   ");
    document.getElementById("indicator").appendChild(textToWrite);
} 
//==========
function BlockTwo(){
    var textToWrite = document.createTextNode("Going   ");
    document.getElementById("indicator").appendChild(textToWrite);
} 
//=========
function BlockThree(){
    var textToWrite = document.createTextNode("To School   ");
    document.getElementById("indicator").appendChild(textToWrite);
} 
function RunAll(){
    BlockOne();
    BlockTwo();
    BlockThree();
}
window.onload=RunAll();

请先运行这些功能块中的哪一个,或者它们将按什么顺序运行。

这个:

window.onload=BlockOne=BlockTwo=BlockThree;

将导致在"加载"事件触发时仅运行"BlockThree"。赋值语句的解释方式就像是这样写的:

window.onload = (BlockOne = (BlockTwo = BlockThree));

最右边的=运算符将符号"BlockTwo"设置为与"BlockThree"相同的值,然后中间=将该值(仍然是"BlockThree")分配给"BlockOne"。 函数定义语句将函数名称绑定到局部符号,但它们不是特殊符号;它们与普通的var符号几乎相同。

完成所有这些操作后,window的"onload"属性仅设置为一个函数引用,即"BlockThree"。 在此之后,与"BlockOne"和"BlockTwo"关联的原始函数将不再可引用;他们基本上已经消失了。

第二个函数将不运行它们中的任何一个,因为您的"RunAll"函数缺少所有三个函数的函数调用运算符(())。如果是

function RunAll(){
  BlockOne();BlockTwo();BlockThree();
}

然后,所有三个都将按照从左到右列出的顺序运行。