關于highlight()中this的指向問題
?????function?Highlight(){ ????????var?tbody?=?document.getElementById('table').lastChild;???? ????????trs?=?tbody.getElementsByTagName('tr');??? ????????for(var?i?=1;i<trs.length;i++){ ????????????trs[i].onmouseover?=?function(){ ????????????????this.style.backgroundColor?="#f2f2f2"; ????????????}? ????????????trs[i].onmouseout?=?function(){ ????????????????this.style.backgroundColor?="#fff"; ????????????}? ????????} ?????}
this指向最終調用它的對象?? 上述代碼中this指向了trs[i]?
但是??!
var?bar?=?function?()?{console.log(this)} bar()
此處的this則是指向了window
這邊感覺兩處代碼形式基本相同 為何指向不一樣呢
2017-08-09
請問有沒有可能是因為第一段代碼中的this,是對象方法(屬性)的函數的this,其函數針對的是那個對象的方法(屬性)而非那個對象本身,所以作為“最終調用這個方法(屬性)的‘那個對象’”成為了this的指向呢?
初學菜雞,對面向對象的理解還不是很透徹,求解~