解決setTimeout中的this指向問題

2021-09-19 18:43:22 字數 544 閱讀 3647

在setinterval和settimeout中傳入函式時,函式中的this會指向window物件。

function latebloomer() 

// declare bloom after a delay of 2 second

latebloomer.prototype.bloom = function() ;

latebloomer.prototype.declare = function() ;

var flower = new latebloomer();

flower.bloom(); // 二秒鐘後, 呼叫'declare'方法

解決辦法:

推薦用下面兩種寫法

使用es6中的箭頭函式,因為在箭頭函式中this是固定的。

// 箭頭函式可以讓settimeout裡面的this,繫結定義時所在的作用域,而不是指向執行時所在的作用域。

// 參考:箭頭函式

window.settimeout(() => this.declare(), 2000);

解決setTimeout中的this指向問題

在setinterval和settimeout中傳入函式時,函式中的this會指向window物件。function latebloomer declare bloom after a delay of 2 second latebloomer.prototype.bloom function la...

js 中 setTimeout 的用法

settimeout 在執行時,是在載入後延遲指定時間後,去執行一次表示式,僅執行一次 settimeout 在執行時,它從載入後,每隔指定的時間就執行一次表示式 1,基本用法 執行一段 var i 0 settimeout i 1 alert i 1000 執行乙個函式 var i 0 setti...

js 中 setTimeout 的用法

settimeout 在執行時,是在載入後延遲指定時間後,去執行一次表示式,僅執行一次 settimeout 在執行時,它從載入後,每隔指定的時間就執行一次表示式 1,基本用法 執行一段 var i 0 settimeout i 1 alert i 1000 執行乙個函式 var i 0 setti...