遇到這樣一道題,一個函數內,有兩個alert函數,第二次alert需要在第一次alert2000ms后調用1 . var Obj=function(msg){2 . this.msg=msg;3 . this.shout=function(){4 . alert(this.msg);5 . };6 . this.waitAndShout=function(){7 . setTimeout(this.shout,2000);8 . };9 . }10. var aa=new Obj("abc");11. aa.waitAndShout(); //2s后undefined搜了一下答案發現無關閉包,只是有關上下文,但不是特別明白,大神求帶?。。。∥易詈蟮慕鉀Q方法是在34行間插入 var this.msg= msg; 在 10.11行插入 aa.shout();不知有沒有更好的(優雅-。-)解決方法?抱歉剛剛沒描述清楚,這道題的本意應該是調用aa.waitAndShout()呼出兩個間隔兩秒的alert**我想請教的是這道題要怎么改,才能達到這種效果最后或者是我理解錯了?還是就是考察this指針的用法
js一道面試題。貌似閉包,上下文,函數調用,聲明,setTimeout()
Cats萌萌
2018-07-31 21:20:55