1.函数中的this,是谁调用,指向谁
遵循两条原则:a.判断this在哪个函数中 b. 这个函数是那种调用模式调用的
(1)普通函数调用,指向window
<script> function fn(){ console.log(this) } fn() </script>
打印结果:window
(2)对象调用,指向obj
<script> function fn(){ console.log(this) } var obj={} obj.f=fn; obj.f(); </script>
打印结果:{f:f}
(3)new 调用函数,this指向创建出来的实例
<script> function fn(name){ this.name=name; this.say=function(){console.log('我的名字是'+this.name)} } var f =new fn('张三'); f.say() </script>
打印结果:我的名字是张三
(4)注册事件,this指向事件源
<body> <div class="box">box的内容</div> <script> var box=document.getElementsByClassName('box')[0] box.onclick=function(){ console.log(this.innerHTML) } </script> </body>
打印结果:box的内容
(5)定时器调用,this指向window
<script> function fn(){ console.log(this) } setInterval(fn,1000) </script>
打印结果:window