解读JavaScript this关键字

方法中,this关键字引用其所属的对象。

this指的是全局对象在函数中。

this引用全局对象在函数中。

在严格模式下,this是未定义的在事件中。

this指的是接收事件的元素像call()和apply()这样的方法,可以将其引用到任何对象。

二、方法上下文

在对象方法中,this指代方法的user。

当调用user.getName()时,函数内部将this绑定到user对象:

例:


  1. <!DOCTYPE html> 
  2. <html> 
  3. <title>项目</title> 
  4.  
  5. <body style="background-color: aqua;"
  6.  
  7. <p>在此示例中,<b> user </b>对象是<b> getName </b>方法的所有者:</p> 
  8.  
  9. <script> 
  10. // 创建一个对象 
  11. var user = { 
  12. firstName: "基础教程"
  13. lastName: "baidu.com"
  14. age: 5, 
  15. getName: function() { 
  16. return this.firstName + " " + this.lastName; 
  17. }; 
  18.  
  19. document.write(user.getName()); 
  20. </script> 
  21.  
  22. </body> 
  23. </html> 

这里user对象是所有者getName的方法。

1. 全局上下文

在全局执行上下文中(在任何函数之外),this无论是否处于严格模式下,都引用全局对象。

示例


  1. <!DOCTYPE html> 
  2. <html> 
  3. <title>项目</title> 
  4.  
  5. <body style="background-color: aqua;">  
  6.  
  7. <p>在全局执行上下文中(在任何函数之外),这指的是全局对象:</p> 
  8.  
  9. <p>访问调试在您的浏览器按F12,并选择"控制台"在调试器菜单:</p> 
  10.  
  11. <script> 
  12. //在Web浏览器中,窗口对象也是全局对象: 
  13. console.log(this === window); // true 
  14.  
  15. a = 50; 
  16. console.log(window.a); // 50 
  17.  
  18. this.b = "baidu.com"
  19. console.log(window.b) // "nhooo.com" 
  20. console.log(b) // "nhooo.com" 
  21. </script> 
  22.  
  23. </body> 
  24. </html> 
【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章