为什么' Hello World'字符串不打印到控制台?
我希望函数在计时器启动后返回值。
<script type="text/javascript">
var obj = {
first(){
window.setTimeout(function(){
return 'Hello World';
}, 0)
},
second(){
console.log(this.first());
}
}
obj.second()
</script>
答案 0 :(得分:0)
它因为setTimeOut
是异步的。 second()
函数不等待setTimeOut
的回调完成以返回值。你应该做点什么:
var obj = {
first(){ var _this = this;
window.setTimeout(function(){
_this.second('Hello World');
}, 0);
},
second(text){
console.log(text);
}
}
obj.first();