为什么不打印'Hello World'字符串?
我希望函数在计时器启动后返回值。
<script type="text/javascript">
var obj = {
first(){
window.setTimeout(function(){
return 'Hello World';
}, 0)
},
second(){
console.log(this.first());
}
}
obj.second()
</script>
这是因为setTimeOut
是异步的。second()
功能不等待setTimeOut
的回调完成值。您应该做类似的事情:
var obj = {
first(){ var _this = this;
window.setTimeout(function(){
_this.second('Hello World');
}, 0);
},
second(text){
console.log(text);
}
}
obj.first();