总体而言,我对 JS 和编程还很陌生。我随便自学,只是为了好玩!看看这个:
var a=0;
var b=0;
function test(){
a++;
b++;
document.body.innerHTML+=a+" "+b;
return 42;
}
$("document").ready(function(){
test();
});
这(如预期的那样)打印出来
1 1
当你刚刚运行函数时,返回值似乎毫无意义。另一方面,如果我将其修改为...
$("document").ready(function(){
document.body.innerHTML+=test()+" "+a+" "+b;
});
打印出来:
42 1 1
这意味着“var a”递增,“var b”递增,42 作为 test() 的值返回,但 test() 的 DOM 部分被忽略。 为什么是这样?还有什么被忽略了吗? 谢谢。
最佳答案
这真的归结为 +=
是什么意思?
x += y;
// same as
x = x + y;
所以
document.body.innerHTML += test() + " " + a + " " + b;
// same as
document.body.innerHTML = document.body.innerHTML + test() + " " + a + " " + b;
// X Y
现在您可以看到,document.body.innerHTML
Y 在被 test() 更改之前被采用
,所以在 test
中所做的更改不在 Y 中。
关于javascript - 将函数视为值时是否会忽略 DOM 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22283047/