羽宫秦4101021
2017-08-09 23:30
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
这边感觉两处代码形式基本相同 为何指向不一样呢
请问有没有可能是因为第一段代码中的this,是对象方法(属性)的函数的this,其函数针对的是那个对象的方法(属性)而非那个对象本身,所以作为“最终调用这个方法(属性)的‘那个对象’”成为了this的指向呢?
初学菜鸡,对面向对象的理解还不是很透彻,求解~
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题