1.当有定时器时 this会指向window
<script type="text/javascript"> function Aaa(){ var _this=this; //_this表示Aaa this.a=12; setInterval(function(){ // console.log(this) //this表示window _this.show(); },1000) } Aaa.prototype.show=function(){ console.log(this.a) } var obj=new Aaa(); // obj.show() </script>
2.当有事件时,this会指向事件对象
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> </head> <body> <script type="text/javascript"> function Bbb(){ // console.log(this) //this 这个表示 Bbb var _this=this; this.b=5; // document.getElementById("btn").onclick=this.show //这里的this表示 input document.getElementById("btn").onclick=function(){ _this.show() } } Bbb.prototype.show=function(){ console.log(this.b) /*this 表示*/ } window.onload=function(){ new Bbb(); } </script> <input type="button" name="" id="btn" value="按钮" /> </body> </html>