-2
爲什麼'Hello World'字符串不會打印到控制檯?
我希望函數在定時器啓動後返回值。在下面的JavaScript代碼中,爲什麼輸出未定義?
<script type="text/javascript">
var obj = {
first(){
window.setTimeout(function(){
return 'Hello World';
}, 0)
},
second(){
console.log(this.first());
}
}
obj.second()
</script>
你必須從'第一'返回一個承諾這是正確的方式來做到這一點。 –
返回類型回調函數不會影響方法返回值,您應該在第一個方法中返回一些值 – sai
正如sai所說,函數(){return'Hello World';}'回調函數存在於完全不同於'first(){...}'的範圍,並且setTimeout是異步的,對first()的調用在沒有返回語句(未定義)的情況下解析。 –