我有以下代码:
function foo() {
setTimeout(function() {
console.log("a");
}, 0);
console.log("b");
console.log("c");
}
在我的控制台中,我得到以下结果:
b
c
undefined
a
我需要得到以下结果:
undefined
a
b
c
要打印的命令" b"和" c",需要留在root foo函数中。
怎么做?
-
上述案例简化了我的需要。
答案 0 :(得分:-2)
function bar(){
that = this;
this.printed = undefined;
this.foo = function() {
if (typeof this.printed === "undefined") {
this.printed = false;
console.log("a");
setTimeout(function() {
that.printed = true;
that.foo();
return undefined;
}, 0);
}
if(this.printed == true) {
console.log("b");
console.log("c");
this.printed = undefined;
}
}
}
new bar().foo()