Javascript 函数调用行为
在我的测试中,Javascript 函数调用行为,javascript,Javascript,在我的测试中,mylog函数被调用了三次,但从源代码来看,我认为应该只执行两次 <html> <div id='log'></div> <script> var Foo = { counter : "inside the Foo object" }; var counter = "Global"; Foo.method = function() { var counter = "inside Foo.method"; mylog
mylog
函数被调用了三次,但从源代码来看,我认为应该只执行两次
<html>
<div id='log'></div>
<script>
var Foo = { counter : "inside the Foo object" };
var counter = "Global";
Foo.method = function() {
var counter = "inside Foo.method";
mylog("counter = "+this.counter);
function test() {
// this is set to the global object
mylog("counter = "+this.counter);
}
test();
}
Foo.method();
function mylog(msg) {
log = document.getElementById("log");
log.innerHTML += log.innerHTML + msg + "<br />";
}
</script>
</html>
正如我所预料的那样,
mylog
函数只调用了两次。有人能解释一下为什么会发生这种情况吗?只需将+=
行中的=
更改为log.innerHTML+=log.innerHTML+msg+“
”编码>或保留它并使用log.innerHTML+=msg+“
”格式代码>只调用了两次。检查您的mylog()
:
函数mylog(msg){
log=document.getElementById(“日志”);
log.innerHTML+=log.innerHTML+msg+“
”;
}
任用
log.innerHTML = log.innerHTML + msg + "<br />";
log.innerHTML=log.innerHTML+msg+“
”;
或
log.innerHTML+=msg+“
”;
这就是原因
log.innerHTML += log.innerHTML + msg + "<br />";
log.innerHTML+=log.innerHTML+msg+“
”;
还可以添加当前的innerHTML,以便复制早期日志。像这样做
log.innerHTML += msg + "<br />";
log.innerHTML+=msg+“
”;
或
log.innerHTML=log.innerHTML+msg+“
”;
函数被调用了2次,但您在附加log.InnerHTML时出错。添加log.innerHTML两次
工作代码:
function mylog(msg) {
log = document.getElementById("log");
log.innerHTML += msg + "<br />";
}
函数mylog(msg){
log=document.getElementById(“日志”);
log.innerHTML+=msg+“
”;
}
看
log.innerHTML += log.innerHTML + msg + "<br />";
log.innerHTML += msg + "<br />";
log.innerHTML = log.innerHTML + msg + "<br />";
function mylog(msg) {
log = document.getElementById("log");
log.innerHTML += msg + "<br />";
}