遇到這樣一道題,一個(gè)函數(shù)內(nèi),有兩個(gè)alert函數(shù),第二次alert需要在第一次alert2000ms后調(diào)用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搜了一下答案發(fā)現(xiàn)無關(guān)閉包,只是有關(guān)上下文,但不是特別明白,大神求帶?。。。∥易詈蟮慕鉀Q方法是在34行間插入 var this.msg= msg; 在 10.11行插入 aa.shout();不知有沒有更好的(優(yōu)雅-。-)解決方法?抱歉剛剛沒描述清楚,這道題的本意應(yīng)該是調(diào)用aa.waitAndShout()呼出兩個(gè)間隔兩秒的alert**我想請(qǐng)教的是這道題要怎么改,才能達(dá)到這種效果最后或者是我理解錯(cuò)了?還是就是考察this指針的用法
js一道面試題。貌似閉包,上下文,函數(shù)調(diào)用,聲明,setTimeout()
Cats萌萌
2018-07-31 21:20:55