Javascript 函数如何运行
How Javascript functions run
我想知道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();
}
然后,所有三个都将按照从左到右列出的顺序运行。
相关文章:
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 使用压缩的JavaScript文件(不是运行时压缩)
- Javascript运行php文件,然后下载文件
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Angularjs代码未在匿名函数中运行
- jquery设置为使用参数运行
- 如何根据时间运行不同的脚本
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 将文本框链接到由按钮运行的javascript公式
- 为什么不是't运行此Javascript的Chrome
- ng应用程序使脚本无限运行
- Apache Cordova:在不启动浏览器应用程序的情况下运行Cordova运行浏览器
- 在Windows上运行Jade运行CoffeeScript
- 获取“未检查的运行时”.运行management.uninstall时出现错误
- 有没有办法在Angular运行之前运行Javascript代码?
- 是否有可能在运行时或运行后操纵每个Javascript变量,对象
- 如何防止一个脚本在另一个脚本运行时运行
- 在运行时运行 JavaScript 广告脚本
- jQuery函数在不应该运行时运行