深度理解函数:addLoadEvent(func){}
首先:
注释如下,应该可以理解。
1 |
|
测试:
1 |
|
结果:
注释了oldonload(),那么导致之前已经加载的函数都不可以,因此结果是:六哥。(懂我的以后不要叫爽哥,记得叫六哥!)同时,如果注释了1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
##### 如果这样:
```javascript
function addLoadEvent(func){
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
}
else{
window.onload = function(){
oldonload();//此处不再注释
func();
}
}
}
addLoadEvent(cooling3);
window.onload = cooling1;
addLoadEvent(cooling2);//注意顺序
结果:
addLoadEvent(cooling3)将起不到作用,结果为hello ,world。
同理,如果这样:
1 |
|
结果:
将所有的addLoadEvent都不起作用。
总结:
在使用JavaScript写相关程序的过程中,addLoadEvent这样的函数几乎每次都能用到。执行时,是按照函数调用的顺序,顺序向下执行(我这里的依次弹窗就体现了这点)。但是要注意,如果同时使用window.onload加载函数,那么window.onload必须放在所有的addLoadEvent函数前。只有这样才能起到作用。
类似的常用函数还有:
1 | function insertAfter(newElement,targetElement) { |
由于JavaScript中不存在insertAfter()、addClass()这样的方法,所以需要手动建立一个这样的函数,方便复用!对于addClass()这个函数,要注意字符串拼接的部分,i+=j 等价与i=i+j,而不等价于i=j+i;虽然它们在数值运算上,是相等的,但是在字符串拼接上,却值得注意!