Lei*_*nus 4 javascript dom function
我对JS和编程很新.我正在自言自语,只是为了好玩!看看这个:
var a=0;
var b=0;
function test(){
a++;
b++;
document.body.innerHTML+=a+" "+b;
return 42;
}
$("document").ready(function(){
test();
});
Run Code Online (Sandbox Code Playgroud)
这(如预期)打印出来
1 1
Run Code Online (Sandbox Code Playgroud)
当你刚刚运行该函数时,返回值似乎毫无意义.另一方面,如果我修改它以便它读取...
$("document").ready(function(){
document.body.innerHTML+=test()+" "+a+" "+b;
});
Run Code Online (Sandbox Code Playgroud)
打印出:
42 1 1
Run Code Online (Sandbox Code Playgroud)
这意味着'var a'增加并且'var b'增加并且42作为test()的值返回,但是忽略了test()的DOM部分.为什么是这样?还有什么别的吗?谢谢.
这真的归结为什么+=意思?
x += y;
// same as
x = x + y;
Run Code Online (Sandbox Code Playgroud)
所以
document.body.innerHTML += test() + " " + a + " " + b;
// same as
document.body.innerHTML = document.body.innerHTML + test() + " " + a + " " + b;
// X Y
Run Code Online (Sandbox Code Playgroud)
现在您可以看到,document.body.innerHTML Y 在被更改之前被捕获test(),因此所做的更改test不在Y中.
| 归档时间: |
|
| 查看次数: |
33 次 |
| 最近记录: |