在js中,不同的环境下,this所指不同,下面做下小结,也是给自己一个提醒。
1、函数调用 ==window
2、方法调用 ==宿主
3、构造器 ==实例对象
4、上下文(间接调用)
function fn() { console.log(this); } var obj = {fn:fn}; var o = { obj: { f:fn } }; fn();//window obj.fn();//obj o.obj.f();//obj new fn();//fn构造函数的实例对象 fn.call([1,2,3]);//数组 fn.call({val:100});//对象 setTimeout(function () { console.log(this); //window },100); document.getElementsByTagName('p')[0].addEventListener('click',function () { console.log(this); //p标签 });
如对本文有疑问, 点击进行留言回复!!
offset、client、scroll (width,height、left,top、X,Y)
网友评论