關於定時器中this的指向問題

2022-01-14 04:54:31 字數 710 閱讀 2354

解決方法一

將當前物件的this存為乙個變數,通俗講就是在方法內重新定義乙個引數,將this指向這個引數。

例項:

解決方法二

bind()方法是在function.prototype上的乙個方法,當被繫結函式執行時,bind方法會建立乙個新函式,並將第乙個引數作為新函式執行時的this。在這個例子中,在呼叫settimeout中的函式時,bind方法建立了乙個新的函式,並將this傳進新的函式,執行的結果也就是正確的了

解決方法三

箭頭函式完全修復了this的指向,this總是指向詞法作用域,也就是外層呼叫者obj,

節選自

little zhang

關於定時器

定時器是個很有意思的東西,它很有用,但我認為這不是現代計算機的結構所擅長的事情。計算機適合做那些很大量的簡單重複工作,或者根據請求做出回應。dos時代是沒有程序執行緒等概念的,那時候要想做到定時真是有些麻煩 通常的做法是死迴圈不斷監測時間,發現時間到了就做特定的事情 當然你可以用delay,來指定等...

關於定時器

今天突然想到乙個問題,如果要設定乙個5分鐘的定時器,那麼時間使用5 minute和5 60 second有什麼區別呢?或者說,設定成後者,程式會不會更累呢,會不會每秒鐘都去檢查下是不是到期了?於是去翻了一下golang原始碼中time的newtimer部分,如下 原來人家這兒用的是duration,...

關於VC中的定時器

寫vc程式時碰到乙個定時器的問題,說明一下。settimer函式用於建立乙個計時器,killtimer函式用於銷毀乙個計時器。計時器屬於系統資源,使用完應及時銷毀。settimer的函式原型如下 uint ptr settimer hwnd hwnd,uint ptr nidevent,uint u...