setInterval方法中this指向問題

2021-10-01 03:14:25 字數 776 閱讀 8442

在settimeout()或setinterval()這樣的方法中,如果傳入的函式包含this, 那麼,預設情況下,函式中的this會指向window物件。這是由於settimeout()呼叫的**執行在與所在函式完全分離的執行環境上。這會導致這些**中包含的 this 關鍵字會指向 window (或全域性)物件。

定時器內部的函式來訪問到這個變數,此時的this,就指向了當前物件

function doclick(), 1000);

}

function doclick().bind(this), 1000);  //利用bind()將this繫結到這個函式上

}

es6中的箭頭函式, this總是指向詞法作用域,也就是外層呼叫者obj,因此利用箭頭函式就可以輕鬆解決這個問題

function doclick(), 100);

},

如何準確判斷 this 指向的是什麼?**自前端小姐姐)

1 . 函式是否在 new 中呼叫 (new 繫結),如果是,那麼 this 繫結的是新建立的物件。

3 . 函式是否在某個上下文物件中呼叫 (隱式繫結),如果是的話,this 繫結的是那個上下文物件。一般是 obj.foo()。

4 . 如果以上都不是,那麼使用預設繫結。如果在嚴格模式下,則繫結到 undefined,否則繫結到全域性物件。

6 . 如果是箭頭函式,箭頭函式的 this 繼承的是外層**塊的 this。

Vue vue中setInterval的問題

this.chattimer setinterval 1000 然後再元件銷毀前進行清除 beforedestroy 根據 setinterval 返回的 id 列印來看,請除定時器並沒有成功 但是這樣不行,定時器在區域性更新的時候會多次賦值.更改了一種寫法,加了一重判斷之後依舊無法解決.if th...

js中setinterval 的相關使用

1.setinterval 方法 setinterval 是定時呼叫的函式,可按照指定的週期 以毫秒計 來呼叫函式或計算表示式。2.建立乙個setinterval 方法 setinterval show,1000 function show 這裡的datetime是乙個動態文字框的變數名字。3.建立...

統計中的t檢驗

1.什麼情況下,應用t檢驗 1.已知總體的均值m,或者我們假設了乙個總體均值m 2.我們知道樣本的個數n,樣本的的方差var,樣本的均值m 3.我們假設總體,或者樣本都是服從正太分布的。2.我們的目的,就是要檢驗這個總體均值m是否合理 3.具體步驟 參考 t檢驗的步驟 1 建立虛無假設h 0 1 2...