在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...